잠시만 기다려 주세요


 
HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (771)  |  추천 및 재미 (15)  |  자료실 (16)  |  끄적거림 (439)  |  시나리오 (757)  |  드라마 대본 (248)  |  

2019년 05월 24일
술에 의지하면서 인생을 낭비하는 것은 너무 슬픈일이다. - 바다아이
 

    golang

golang - golang geoip 사용하기 2
이 름 : 바다아이   |   조회수 : 1719         짧은 주소 : https://www.bada-ie.com/su/?351523102805
GeoLite2-Country_20180703.tar.gz - 1,704 KB   다운수 : 0 회
GeoLite2-City_20180703.tar.gz - 26,028 KB   다운수 : 2 회

go get github.com/oschwald/geoip2-golang


예제)

package main

import (
    "fmt"
    "github.com/oschwald/geoip2-golang"
    "log"
    "net"
)

func main() {
    db, err := geoip2.Open("GeoLite2-City.mmdb") // 나라, 도시 두가지 파일이 있습니다.
    if err != nil {
            log.Fatal(err)
    }
    defer db.Close()
    // If you are using strings that may be invalid, check that ip is not nil
    ip := net.ParseIP("81.2.69.142")
    record, err := db.City(ip)
    if err != nil {
            log.Fatal(err)
    }
    fmt.Printf("Portuguese (BR) city name: %v\n", record.City.Names["pt-BR"])
    fmt.Printf("English subdivision name: %v\n", record.Subdivisions[0].Names["en"])
    fmt.Printf("Russian country name: %v\n", record.Country.Names["ru"]) // 러시아 말로 나라이름이 표시됩니다. 영어면 en
    fmt.Printf("ISO country code: %v\n", record.Country.IsoCode)
    fmt.Printf("Time zone: %v\n", record.Location.TimeZone)
    fmt.Printf("Coordinates: %v, %v\n", record.Location.Latitude, record.Location.Longitude)

    // 나라 파일이면 나라이름, 나라코드만 도시까지면 위에 전부 됩니다. 그러나 유료, 무료 정보가 달라집니다.
    // Output:
    // Portuguese (BR) city name: Londres
    // English subdivision name: England
    // Russian country name: Великобритания
    // ISO country code: GB
    // Time zone: Europe/London
    // Coordinates: 51.5142, -0.0931
}


기존에 하나 올려 놓은 거 있긴 합니다만.. 고건 기본 나라코드만 제공되고요...
이건 기타 정보를 다 볼 수 있습니다.
그러나 이것도 단점이 있습니다. 첨부해논 .mmdb 파일이 유료가 있고 무료가 있습니다. -.-;
위에 올려 놓은 것은 무료입니다. 무료는 역시 뭔가 빠지겠죠 ^^;

그리고 .mmdb 파일이 나라가 있고 도시까지 나온 파일이 있습니다. 도시 포함되면 파일이 엄청 커지죠...
그래서 검색이 느리게 됩니다... 미리 .mmdb 파일을 메모리에 올려 놓고 사용하는 것도 좋겠네요...
특별히 중요한 거 아니면 도시까지 나온거 하지 마시고 나라만 나오는 것으로 하시면 되겠습니다.
나는 그냥 나라코드만 있으면 된다 싶은 사람은 기존에 올려놓은 거 사용하세요.. 여기서 geoip 검색하시면 있습니다.
그건 .dat 파일 크기가 1메가 조금 넘습니다. 요 파일은 리눅스나 freebsd 에 geoip 가 설치되어 있어야 합니다. 의존합니다.

아래가셔서 최신 데이타 파일 다운해서 압축풀고 golang 실행 파일 있는 폴더에 넣으세요..
파일 이름은 예제랑 조금씩 다를 겁니다.

GeoLite2 Country
MaxMind DB

위 항목에 있는 것 다운로드 하시면 됩니다.

http://dev.maxmind.com/geoip/geoip2/geolite2/ 
| |


      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
169 golang golang ... Force download file example 바다아이 147
168 golang golang , , cpu, memory, disk 바다아이 309
167 golang golang , ... GOOS, GOARCH 바다아이 310
166 golang golang checkbox ... 바다아이 374
165 golang golang , , http .... 바다아이 423
164 golang golang nil , nil , nil ... 바다아이 431
163 golang 2 golang, go , .... golang .... 바다아이 629
162 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 515
161 golang golang postgresql mysql, mariadb scan , null .. 바다아이 550
160 golang golang , iconv 바다아이 627
159 golang golang quote escape, unquote 바다아이 620
158 golang golang , http errorLog , , ... 바다아이 697
157 golang golang interface , 바다아이 631
156 golang golang struct .... 바다아이 695
155 golang golang map map , 바다아이 664
154 golang golang map .... .... 바다아이 721
153 golang golang slice copy 바다아이 633
152 golang golang goto 바다아이 693
151 golang golang slice sort , int, string, float64 바다아이 725
150 golang URL Parsing, url . parse 바다아이 716
149 golang golang , interface{} ... 바다아이 703
148 golang golang interface to string, , , map slice json 바다아이 657
147 golang golang How to convert JSON string to map and slice, json 바다아이 667
146 golang golang , file write, Writing Files 바다아이 818
145 golang golang Insert Line or String to File, , , , , 바다아이 640
144 golang golang replace 바다아이 680
143 golang golang split explode , , ... 바다아이 724
142 golang golang email read parse, , ..... .... 바다아이 689
141 golang golang smtp email sendmail 바다아이 717
140 golang golang sort , example, struct, 바다아이 753
| |






Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ FreeBSD + GoLang + PostgreSQL ]
서버위치 : New Jersey  실행시간 : 0.04923
to webmaster... gogo sea. gogo sea.