说明蓝色=命令名称

浅绿=命令参数

浅蓝=选项

紫色=目录

系统环境:windows 7 32位

python版本:Python 2.7.3

代码如下:

 
   
  
  • #!/usr/bin/env python
  • #-*- coding:utf-8 -*-
  • #Author:left_left
import socket   import  json   def  json_info(data):       data = json.loads(data)        if  data[ "code" ]:            return   False        else :            return  data[ "data" ]       def  get_addr(ip):       head_info =  "GET /service/getIpInfo.php?ip=%s HTTP/1.1\r\n"  % ip  +\            "Host:ip.taobao.com\r\n"  +\        "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0\r\n"  +\        "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n\r\n"       s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)       addr = socket.gethostbyname( "ip.taobao.com" )       s.connect((addr,  80 ))       s.send(head_info)       info = s.recv( 4096 )       json_data = info.split( "\r\n" )        return  json_info(json_data[- 4 ])       s.close()     def  ip_read():       ip_f = open( "./ip" )               for  line  in  ip_f:           ip = line.split( "/" )                       if  len(ip)> 1 :               info = get_addr(ip[ 0 ])                if  info:                   data =  " " .join([line.strip( "\n" ), info[ "ip" ], info[ "country" ],                               info[ "city" ],info[ "region" ], info[ "area" ], info[ "isp" ]])                    print  data                else :                    print   "%s error..."  % line            else :                print  line       if  __name__ ==  "__main__" :       ip_read() 

ip文件内容如下:

 
  
  1. [北京-长城宽带-BGP]  
  2. 101.38.0.0/15  
  3. 101.40.0.0/15  
  4. 124.14.224.0/19  
  5. 124.14.64.0/18  
  6. 124.254.0.0/18  
  7. 180.88.128.0/18  
  8. 180.88.96.0/19  
  9. 180.89.64.0/19  
  10. 211.161.0.0/20  
  11. 211.161.32.0/20  
  12. 220.113.0.0/19  
  13. 220.113.32.0/20  
  14. 60.253.128.0/17  
  15. [鹏博士-BGP]  
  16. 1.93.0.0/16  
  17. 101.247.128.0/18  
  18. 113.44.0.0/16  
  19. 113.45.0.0/16  
  20. 113.46.0.0/16  
  21. 113.47.0.0/16 

结果如图: