python学习-使用ip138查询ip地址归属地

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习-使用ip138查询ip地址归属地相关的知识,希望对你有一定的参考价值。

#!/usr/bin/python
#coding:utf-8
import urllib
import re
import sys



def ISIP(s):
    return len([i for i in s.split('.') if (0<= int(i)<= 255)])== 4

def URL(ip):
	uip=urllib.urlopen('http://wap.ip138.com/ip.asp?ip=%s'%ip)
	fip=uip.read()
	rip=re.compile(r"<br/><b>查询结果:(.*)</b><br/>")
	result=rip.findall(fip)
	print "%s\t %s" %(ip,result[0])

def DO(domain):
        url=urllib.urlopen('http://wap.ip138.com/ip.asp?ip=%s'%domain)
        f=url.read()
        r=re.compile(r'&gt; (.*)<br/><b>查询结果:(.*)</b><br/>')
        result=r.findall(f)
	#print type(result)
	for i in result:
        	print "%s\t %s\t %s\t" %(domain,i[0],i[1])

if __name__ == "__main__":
	if len(sys.argv) < 2:
		print "请输入IP地址或者域名 (例如:192.168.1.1 / www.baidu.com)"
		sys.exit()
	INPUT=sys.argv[1]
	if not re.findall('(\d{1,3}\.){3}\d{1,3}',INPUT):
	        if re.findall(r'(\w+\.)?(\w+)(\.\D+){1,2}',INPUT) :
	                DOMAIN=INPUT
			DO(DOMAIN)
	        else:
	                print "输入的IP地址和域名格式不对!"
	else:
	        if ISIP(INPUT)  :
	                IPADDRESS=INPUT
			URL(IPADDRESS)
	        else:
	                print "IP 地址不合法,请重新输入!"


以上是关于python学习-使用ip138查询ip地址归属地的主要内容,如果未能解决你的问题,请参考以下文章

怎样根据IP地址查询所在地

Python利用api接口查询IP地址归属地

python requests库爬取网页小实例:ip地址查询

IP地址归属地查询

在表格中批量查询IP地址归属地

python +ip2region IP库地址文件实现秒级查询1万不同ip归属地址