Replies: 1 comment
-
代码为python脚本,我个人编写,可放心审计后食用 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
背景
先说下环境吧,一般家庭网络,运营商分配的动态ipv6,使用接口获取会有多个ipv6并且经常顺序变动,没法固定。对于多个ipv6相同格式的正则匹配也无解。所以我采用了通信协议中获取ipv6的方法,切实在有发包回包的过程中解析当前可以通信的本机ipv6。个人觉得这个相对靠谱一些。
思路
python脚本通过套接字给公开的ipv6地址(例如谷歌dns:2001:4860:4860::8888)发送ipv6 icmp探测,并且发包之前开启多进程收包,修改探测包中的icmpv6_identifier作为回包的归属验证,抓包程序抓取到对方返回的icmpv6响应包后解析出本机ipv6地址。
说明
个人脚本已经集成好了谷歌dns、icmpv6_identifier、超时时间和各类发包数量等,暂时无需修改(有些python依赖可能需要自己pip安装一下),命令行root用户执行python3 ipv6_NoSourceIP.py等待5s即可获取本机ipv6可通信地址。如果需要自定义,有python和网络编程基础的可以自行修改代码。目前我使用尚未发现明显bug,如果有,可以通知我[email protected]。
ipv6.zip
Beta Was this translation helpful? Give feedback.
All reactions