简介
ips 命令不仅是 IPS 命令行工具的主入口,提供了多种子命令来处理 IP 数据库相关的操作,而且它本身也是查询命令,提供了查询 IP 地址的地理位置信息功能。
查询命令支持通过命令行参数或管道方式进行查询,适用于 IPv4 和 IPv6 地址,并且能够根据用户的配置输出自定义字段信息,以满足个性化的信息展示需求。
使用方法
作为命令行工具,ips 提供了直观的命令行参数查询和灵活的管道查询两种方式,让用户可以快速查询 IP 地址的地理位置信息。
用户还可以自定义查询结果中包含的字段,以及输出格式和语言,以便获得最适合自己需求的信息展示。
命令语法
Terminal window# 命令行参数查询ips
# 管道查询echo
-i, --file string:同时指定 IPv4 和 IPv6 数据库文件的路径。
--format string:指定 IPv4 和 IPv6 数据库文件的格式,需要与 --file 配合使用。默认为自动检测。
--database-option string:数据库读取器指定选项。具体信息请查阅相关的数据库格式文档或获取专业支持。
--ipv4-file string:指定 IPv4 数据库文件的路径。
--ipv4-format string:指定 IPv4 数据库文件的格式,需要与 --ipv4-file 配合使用。默认为自动检测。
--ipv6-file string:指定 IPv6 数据库文件的路径。
--ipv6-format string:指定 IPv6 数据库文件的格式,需要与 --ipv6-file 配合使用。默认为自动检测。
--hybrid-mode string: 指定混合读取器的操作模式,可选值为 comparison 与 aggregation,参数详细解释请参考 IPS 配置说明。
--text-format string:指定文本输出的格式,支持 %origin 和 %values 参数。
--text-values-sep string:指定文本输出中值的分隔符,默认为空格。
-j, --json bool:以 JSON 格式输出结果。
--json-indent bool:以带缩进的 JSON 格式输出结果。参数详细解释请参考 IPS 配置说明。
--use-db-fields bool:使用数据库中的字段名称。一般与 JSON 输出格式配合使用。参数详细解释请参考 IPS 配置说明。
--lang string:设置输出信息的语言。默认为 zh-CN (中文)。参数详细解释请参考 IPS 配置说明。
-f, --fields string:指定从输入文件中获取的字段。默认为所有字段。参数详细解释请参考 IPS 配置说明。
-r, --rewrite-files string:指定需要载入的改写文件列表。参数详细解释请参考 IPS 配置说明。
--loglevel string:设置日志级别,全局参数,可选值为 trace、debug、info、warn、error、fatal 和 panic,默认值为 info。
示例
命令行查询 IP 地址
Terminal window# 查询 IP 地址的地理位置信息ips 8.8.8.8
# 查询多个 IP 地址的地理位置信息ips 8.8.8.8 119.29.29.29
管道查询 IP 地址
Terminal window# 使用 echo 传递 IP 地址给 ips 命令echo 8.8.8.8 | ips
# 与 cat / dig 等命令配合使用dig +short google.com | ips
自定义查询字段和输出格式
Terminal window# 查询 IP 地址,仅输出国家和城市字段ips 8.8.8.8 -f "country,city"
# 自定义文本输出格式ips 8.8.8.8 --text-format "%values" --text-values-sep ":" --fields "country,city"
注意事项
若初次使用,且没有指定数据库文件路径,则会自动下载 IP 数据库文件。
关于默认 IP 数据库的选择
IPv4 的默认数据库为 qqwry.dat,选择纯真是因为目前有持续更新的社区资源(感谢 @metowolf),对于非国内用户,建议使用 GeoLite2-City.mmdb 或商用数据库。
IPv6 的默认数据库为 zxipv6wry.db,由于数据库文件较小,可以优化初次使用 IPS 工具时的体验,但这个数据库内容较为陈旧(最后更新时间为 2021 年 7 月),建议使用 GeoLite2-City.mmdb 或商用数据库。
部分国家 IP 地理位置信息更新较快,如果商业项目使用本工具,请务必更换为较新的商业数据库!