ip2location 仅用于查找特定位置的 IP 地址
Posted
技术标签:
【中文标题】ip2location 仅用于查找特定位置的 IP 地址【英文标题】:ip2location for finding ip address of a specific location only 【发布时间】:2017-06-21 04:36:50 【问题描述】:我正在使用 ip2location 在名为 output.txt 的文件中查找 IP 地址列表的位置,并将答案写入另一个文件 ip_info.txt。我只想在我的文件中写入 IP 地址为的条目美国。以下是我的代码。
import IP2Location;
import urllib;
import time;
start_time = time.time()
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('ip_info','w');
with open('output','r') as f: # file containing ip addresses
for line_terminated in f:
line= line_terminated.rstrip('\r\n'); # strip newline
if line: # non-blank lines
rec = IP2LocObj.get_all(line);
if(rec.country_short == 'US')
t.write(line);
t.write('\t');
t.write(rec.country_short);
t.write('\n');
print("--- %s seconds ---" % (time.time() - start_time))
我在这里收到以下错误。
File "myprogram.py", line 13
if(rec.country_short == 'US')
SyntaxError: invalid syntax
参考你可以查看https://www.ip2location.com/developers/python
【问题讨论】:
【参考方案1】:if(rec.country_short == 'US')
不是有效的 Python。
你的意思是:
if rec.country_short == 'US':
?
【讨论】:
哦,对不起,我对 python 有点陌生...谢谢 4 d 回答。【参考方案2】:所有代码
import IP2Location;
import urllib;
import time;
start_time = time.time()
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('ip_info','w');
with open('output','r') as f:
for line_terminated in f:
line= line_terminated.rstrip('\r\n')
if line:
rec = IP2LocObj.get_all(line)
if rec.country_short == 'US':
t.write(line);
t.write('\t');
t.write(rec.country_short);
t.write('\n');
print("--- %s seconds ---" % (time.time() - start_time))
你的意思是这样的
【讨论】:
以上是关于ip2location 仅用于查找特定位置的 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章
IP2Location 记录到 Pandas DataFrame
ini 使用Apache保护特定位置仅允许一系列IP(和/或域)[白名单IP]
IP2Location + Netmiko 到 SSH 到 VM 到 MTR 并打印结果(如果、elif、else 语句问题)PYTHON3