查询IP或域名所在地小程序

来源:互联网 发布:淘宝店铺搜索页装修 编辑:程序博客网 时间:2024/05/16 12:30

记得有一次,领导给我一张表,里面是一些IP和域名,需要查询这些IP和域名所在地。当时傻乎乎的直接用IP在baidu当中查询查看所在地,还用ping将域名转化IP….这件事一直放在心里,希望有个工具可以自动化地完成这件事,于是乎….请看代码:

#coding=utf-8import reimport socketimport urllibimport urllib2from bs4 import BeautifulSoupimport sysimport argparsetarget = ""def check_ip(line):    reip = re.compile(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])')    if reip.match(line):        return Truedef usage():    print "Hostname or IP To Province Tool"    print "Usage: HostnameToAddr.py target_host"    print "Examples: "    print "------>HostnameToAddr.py 192.168.0.1"    print "------>HostnameToAddr.py www.baidu.com"    sys.exit()def main():    if not len(sys.argv[1:]):        usage()    global target    sp = re.compile(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])')     parse = argparse.ArgumentParser()    parse.add_argument('target',help='server or client ipaddr')    argments = parse.parse_args(sys.argv[1:])    target = argments.target    if not check_ip(target):        try:            ip = socket.gethostbyname(target)        except:            print "The Hostname/IP IS Unvalid !!!"            sys.exit(1)    else:        ip = target    p= {'wd': ip}     request = urllib2.urlopen("http://www.baidu.com/s?"+urllib.urlencode(p)+"&pn=1&cl=1&rn=2")    data = request.read()    soup = BeautifulSoup(data,"html.parser")    itemlist = soup.findAll(name='div',attrs={'class':'c-span21 c-span-last op-ip-detail'})    for item in itemlist:        ip_text = item.get_text()        print target + " is belong to: " + sp.split(ip_text)[1]if __name__ == "__main__":    main()
0 0
原创粉丝点击