ip2location python库

2024-05-16 18:17:48 发布

您现在位置: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


Tags: inpyiphomegetlineopenall
1条回答
网友
1楼 · 发布于 2024-05-16 18:17:48

请尝试下面的新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

相关问题 更多 >