ip2location для нахождения ip-адреса только определенного местоположения
Я использую ip2location, чтобы узнать местоположение списка ip-адресов в файле с именем output.txt и записать ответ в другой файл ip_info.txt. Я хочу записать в свой файл только те записи, чей ip-адрес имеет US.The ниже мой код для этого.
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
2 ответа
Решение
if(rec.country_short == 'US')
не является действительным Python.
Ты имел ввиду:
if rec.country_short == 'US':
?
весь код
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))
ты имел в виду это