URL to Country script

도메인으로 국가를 알아보기 위해 아래와 같은 스크립트를 작성해 보았습니다. 우선 IP별 국가 리스트 DB 파일을 아래 링크에서 다운로드 합니다.

http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip

다운로드 한 파일명은 "db.csv" 로 변경하여 사용하면 됩니다.

#!/usr/bin/python
import sys, socket , re

def url2ip(url):
    url = socket.gethostbyname_ex(url)
    url = str(url[2])
    url = url.split(',')
    url = re.sub('[\[\]\']', '', url[0])
    return url

def decimal2hex(s):
    s = int(s)
    return '%02x' % s

def main():
        url = sys.argv[1]
        ip = url2ip(url)
        print ip
        splitip = ip.split('.')

        ret= ''
        for x in range(4):
            ret += decimal2hex(splitip[x])
        ip2decimal = int(ret,16)

        db = open('db.csv', 'r')
        list = db.readlines()
        for x in list:
            splitdb = x.split('","')
            if int(splitdb[2]) < ip2decimal:
                if int(splitdb[3]) > ip2decimal:
                    print '[' + splitdb[4] + ']', splitdb[5][:-2]
                    break

if __name__ == "__main__":
    main()

사용방법은 아래와 같이 아주 간단 합니다.

[byjjoon@ByJJoon Location_Check]$ ./check.py google.com
74.125.127.106
[US] United States
[byjjoon@ByJJoon Location_Check]$ ./check.py ce.changwon.ac.kr
59.22.141.44
[KR] Korea, Republic of
[byjjoon@ByJJoon Location_Check]$ ./check.py baidu.cn
61.135.163.94
[CN] China
[byjjoon@ByJJoon Location_Check]$

답글 남기기

이메일 주소는 공개되지 않습니다.