ip2location python库错误

时间:2017-06-19 03:55:58

标签: python

我正在尝试使用文件读取IP地址,然后找出该地址的相应位置

import IP2Location;
IP2LocObj = IP2Location.IP2Location();
IP2LocObj.open("data/IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE.BIN");
#t=open('output.txt','w');
t=open('test_ip','r');
Line=t.readline();
While line:
   rec = IP2LocObj.get_all(Line);
   Line=t.readline();
   print rec.country_short

错误即将到来

Traceback (most recent call last):
  File "myprogram.py", line 8, in <module>
    rec = IP2LocObj.get_all(t);
  File "/home/networkgroup/Downloads/IP2Location-Python-master/IP2Location.py", line 219, in get_all
    return self._get_record(addr)
  File "/home/networkgroup/Downloads/IP2Location-Python-master/IP2Location.py", line 364, in _get_record
    ipv = self._parse_addr(ip) 
  File "/home/networkgroup/Downloads/IP2Location-Python-master/IP2Location.py", line 357, in _parse_addr
    socket.inet_pton(socket.AF_INET, addr)
TypeError: inet_pton() argument 2 must be string, not file

此代码出错。您可以在此处查看示例代码http://www.ip2location.com/developers/python

1 个答案:

答案 0 :(得分:0)

请尝试下面的新Python代码。

import IP2Location;

IP2LocObj = IP2Location.IP2Location();
IP2LocObj.open("IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-SAMPLE.BIN"); # This is sample database
with open('test_ip.txt') as f: # file containing ip addresses
    for line_terminated in f:
        line = line_terminated.rstrip('\r\n'); # strip newline
        if line: # non-blank lines
            print line
            rec = IP2LocObj.get_all(line);
            print rec.country_short