如何用Horus的geolock命令快速定位IP地址:IP追踪实战教程
Horus 是一款基于 Python 打造的 OSINT(开源情报)与数字取证工具箱,其中的geolock命令专门用于 IP 地址追踪与定位:只需输入一个 IP,就能快速获得该 IP 所在的城市、邮编、经纬度坐标和 ISP(运营商)信息,是新手进行 IP 定位实战的利器。本文带你从零开始,几分钟内跑通完整的 IP 追踪流程。
Horus 是什么?为什么用它做 IP 定位?
Horus 是一个"一站式"调查辅助工具,覆盖安全、枚举、OSINT、取证等多个模块,官方描述为 "An OSINT / digital forensics tool built in Python"。
geolock 属于它的OSINT模块,主打能力如下:
- 📍免写代码:不用自己拼 API 请求,输入 IP 即可获得结构化结果
- 🛰️多字段输出:城市、邮编、经纬度坐标、ISP 一次拿全
- ⚡开箱即用:底层基于 ip-api.com 免费接口,无需申请密钥即可使用
- 🔗生态互补:若你有 Shodan 付费 API,还可搭配
shodan命令做端口与漏洞深挖(见 src/modules/shodan.py)
小提示:README 中特别说明,Shodan 是付费 API,其大量位置相关功能已在 geolock 中提供,geolock 本身就是零门槛的 IP 定位入口。
快速安装:4 步完成 Horus 环境配置
1. 获取项目源码
前提:本地已安装 Python(3.x)。
git clone https://gitcode.com/gh_mirrors/hor/horus.git cd horus2. 安装依赖
项目依赖已整理在 requirements.txt 中(含requests、shodan、colorama等):
pip install -r requirements.txt3. 启动主程序
在 horus 根目录执行(Linux/MacOS 用python3,Windows 用py):
python3 horus.py启动后会看到终端 Banner 和完整命令清单(由 etc/init/banner.py 绘制),geolock 就列在 OSINT 分组下。
两种启动 geolock 命令的方式
方式一:交互模式
运行python3 horus.py后,在[»]提示符下输入命令名即可:
geolock方式二:命令行参数直接启动
入口脚本 horus.py 注册了-geolock参数,一条命令直达:
python3 horus.py -geolock两种方式最终都会调用 src/modules/geolock.py 中的geolock()函数。
实战演示:3 步定位一个 IP
以交互模式为例,整个流程只有三步:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 输入命令geolock | 进入 IP 定位模块 |
| 2 | 在[?] IP:后输入目标 IP | 如8.8.8.8 |
| 3 | 查看定位结果 | 输出 3 行关键信息 |
成功后终端会依次打印:
- Location:城市 | 邮编
- Coordinates (Latitude | Longitude):纬度 | 经度
- ISP:所属运营商
输出统一由 src/utils.py 的print_response()加上[+]前缀展示,末尾给出[SUCCESS]标记;若请求失败,则会打印[FAILED]并附带具体异常信息。
实战小建议:拿到经纬度后,可粘贴到地图工具中交叉验证城市定位;再结合 ISP 判断该 IP 是机房、宽带还是数据中心地址,这是 IP 追踪报告里非常有价值的一步。
geolock 背后是怎么工作的?(30 秒看懂源码)
geolock 的实现非常轻,核心逻辑在 src/modules/geolock.py 中:
- 启动时读取 src/modules/var/pipes/api_config.json 中的
shodan配置项(保证配置文件结构完整); - 将用户输入的 IP 拼接进
http://ip-api.com/json/{IP}免费接口并发起请求; - 解析返回的 JSON,提取
city、zip、lat、lon、isp字段后格式化输出。
正因为核心定位走的是免费接口,geolock 不需要任何付费密钥即可工作,这也是它对新手最友好的地方。
如果以后想给其他模块(shodan、numlook、vt 等)配置密钥,可以运行:
python3 horus.py -apicon交互式填入密钥后会写入api_config.json,实现逻辑见 src/apicon.py。⚠️ 注意:若向公共仓库提交代码,务必先清空密钥。
常见问题:定位失败或结果不准怎么办?
- 提示
[FAILED]:多半是网络无法访问 ip-api.com,或输入的不是合法 IPv4 地址(带端口、带域名都不行),请检查网络后重试。 - 定位粒度是"城市级":IP 地理库基于运营商分配段,城市/经纬度精度较高,但无法精确到个人门牌位置,请勿夸大解读结果。
- 想要更深度情报:配置 Shodan 付费密钥后,改用
shodan命令,可额外获取组织归属、开放端口与 Heartbleed 漏洞状态(见 src/modules/shodan.py)。 - 合规提醒:OSINT 调查请仅用于合法授权的安全研究与取证场景,尊重数据隐私与当地法律法规。
小结
| 要点 | 内容 |
|---|---|
| 工具 | Horus(Python OSINT / 数字取证工具箱) |
| 命令 | geolock(交互输入或-geolock参数) |
| 输出 | 城市 + 邮编、经纬度坐标、ISP |
| 门槛 | 免费接口,无需密钥 |
跟着本文走完"安装 → 启动 → 输入 IP"三步,你就掌握了用 Horus 的 geolock 命令快速定位 IP 地址的完整方法。对于需要更深层资产情报的进阶玩家,可以继续探索仓库中的 shodan、recpull、mactrace 等模块,把 IP 追踪扩展成一条完整的 OSINT 调查链。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考