从IP地址或主机名获取地理位置
ip2geo的Python项目详细描述
IP2GEO
从IP地址或主机名获取地理位置信息。uses:'ip api.com', “freegeoip.net”或“ipinfo.io”。
简单示例:
$ ip2geo 8.8.8.8 8.8.8.8 - United States (US), California (CA), Mountain View - Google
请注意以下事项:
- http://ip-api.com/(默认)每分钟有150个请求限制
- http://freegeoip.net/每小时有15000个请求限制
- https://ipinfo.io/每天有1000个请求限制
在执行多个请求时,脚本默认将在每个请求之间暂停0.5秒 使用输入文件查找。这样做是为了遵守 “ip api.com”和“freegeoip.net”。使用“ipinfo.io”时要小心。
注释
- 适用于Python2和Python3
仅使用Python标准库以获得最大兼容性
安装
使用pip安装:
pip install ip2geo
或
下载并设置脚本文件的可执行权限:
chmod +x ip2geo.py
或
使用python解释器下载并运行:
python ip2geo.py
用法
Usage: ip2geo [ip|hostname] [options] get geolocation from IP address or hostname, can use: 'ip-api.com', 'freegeoip.net' or 'ipinfo.io' Options: --version show program's version number and exit -h, --help show this help message and exit -g API geolocation api to use: 'ipapi', 'freegeoip' or 'ipinfo'(default: ipapi) -s SLEEP time to sleep between requests (default: 0.5) -t TIMEOUT timeout in seconds to wait for reply (default: 5) -i INPUT_FILE use ips/hostnames from input file (one ip/hostname per line) -o OUTPUT_FILE save geolocation information to file
示例
从IP或主机名获取地理位置:
$ ip2geo google.com
使用“freegeoip.net”API获取地理位置:
$ ip2geo google.com -g freegeoip
使用包含多个IP/主机名的输入文件(每行一个):
$ ip2geo -i ips.txt
将输出保存到文件:
$ ip2geo -i ips.txt -o geo_info.txt