使用 python 查询IP的代码,有需要的朋友可以参考下。
用到了sys,re,urllib2,socket模块。
*** 一个查询IP的脚本....
( 此脚本依赖 ip138.com )
 
#!C:python26python.exe
# -*- coding:gbk -*-
# ipfind.py
import sys,re
import urllib2
import socket
def Usage():
    print '''
说明:
  1) 查询本机出口IP地址.
  2) 查询IP地址所在的地域和类型.
  3) 查询域名对应的IP地址.
  0) 退出
'''
def trynet():
    sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sk.settimeout(8)
    try:
        sk.connect(('ip138.com',80))
        pass
    except Exception:
        print '*** 请保证您的Internet接入正常!'
        sys.exit()
    sk.close()
def getmyip():
    url = urllib2.urlopen('http://ip138.com/ip2city.asp')
    result = url.read()
    m = re.search(r'(([01]?dd?|2[0-4]d|25[0-5]).){3}([01]?dd?|2[0-4]d|25[0-5])',result)
    return m.group(0)
def getdomainip(DOMAIN):
    iplist = socket.gethostbyname_ex(DOMAIN)
    return ', '.join(iplist[2])
  
def getnet(IP):
    if re.match(r'^(([01]?dd?|2[0-4]d|25[0-5]).){3}([01]?dd?|2[0-4]d|25[0-5])$',IP):
        pass
    else:
        print '*** 您输入了错误的IP地址!'
        sys.exit()
    mysearch = "http://ip138.com/ips8.asp?ip=%s&action=2" % (IP)
    url = urllib2.urlopen(mysearch)
    result = url.read()
    m = re.search(r'<li>(.*?)</li>', result)
    return m.group(1).replace('本站主数据:',IP+' => ')
def main():
    trynet()
    Usage()
    while True:
        select = raw_input('*** 请选择您要查看的类型:')
        if select == '1':
            print 'n>>> 您的出口IP是:', getmyip()
        elif select == '2':
            myip = raw_input('*** 请输入您要查询的IP地址:')
            print 'n>>>', getnet(myip)
        elif select == '3':
            domain = raw_input('*** 请输入您要查询的域名:')
            print 'n>>>', getdomainip(domain)
        elif select == '0':
            break
 
 if __name__ == '__main__':
    main()