1 Star 1 Fork 0

lavenliu/MyPy3

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
getip.py 1.67 KB
一键复制 编辑 原始数据 按行查看 历史
lavenliu 提交于 2020-09-09 17:53 . first add
# -*- coding: utf-8 -*-
__author__ = 'lcc@lavenliu.cn'
import sys
import argparse
import json
from urllib.request import urlopen
parser = argparse.ArgumentParser()
parser.add_argument('--ip-list-file', '-f',
action='store',
dest='ip_list_file',
help='file contains ip(s) which one ip per line to query')
parser.add_argument('--ip', '-i',
action='store',
dest='ip',
help='single ip to query')
results = parser.parse_args()
if len(sys.argv) < 2:
print('You must enter at least one ip in cmd-line!')
print('Usage: {} ip | ip_list_file'.format(sys.argv[0]))
print('eg: {} --ip aaa.bbb.ccc.ddd | -f iplist'.format(sys.argv[0]))
sys.exit(1)
def get_country(ip_address):
url = 'http://freegeoip.net/json/'
resp_json = urlopen(url+ip_address).read().decode('utf-8')
resp_dict = json.loads(resp_json)
if resp_dict['region_name'] and resp_dict['city']:
return "[{}]: {}-{}-{}".format(
resp_dict['ip'],
resp_dict['country_name'],
resp_dict['region_name'],
resp_dict['city'])
else:
return "[{}]: {}".format(resp_dict['ip'], resp_dict['country_name'])
if results.ip_list_file:
try:
with open(results.ip_list_file) as f:
ip_addresses = f.readlines()
for ip_address in ip_addresses:
print(get_country(ip_address.strip()))
except FileNotFoundError:
print('No such file: {}'.format(results.ip_list_file))
except PermissionError:
print('Permission denied: {}'.format(results.ip_list_file))
else:
print(get_country(results.ip))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/lavenliu/my-py3.git
git@gitee.com:lavenliu/my-py3.git
lavenliu
my-py3
MyPy3
main

搜索帮助