-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
通过命令获取IP参考 #531
Comments
|
|
请问有办法通过命令获取同局域网其他设备Ipv6吗? |
Linux get IPv6 prefix (移动开头2409) |
Windows PowerShell获取ip 参阅微软文档根据网络环境自定义一些参数进行筛选 自用获取公网ipv6 |
@jeessy2 目前匹配正则表达式只能按照顺序选择,大部分时候没问题,但偶尔会遇到一个问题。我这边网卡的IPV6地址,总是有2个地址,一个长一点的,一个短一点的。我发现只有长的才能用外网访问,短的没法访问。但是长的在前还是短的在前有些随机性。 比如这种: 请问能不能设个选项,固定选择长一点的那个,这样就不用选具体1或者2了,谢谢 |
ff:fe是长的那个?如果是直接正则表式中输入 |
请问不需要输入@之类的符号吗?直接在匹配正则表达式栏里面填写ff:fe就可以了吗? |
应该可以 |
不加。@是指定第几个,你这个是匹配字符串正则 |
谢谢,测试可以了。只要不换网卡的Mac,理论上最后几位地址应该不会变的。 |
Linux 仅获取纯公网 IPv6 地址
|
MacOS下没有ip命令,可以使用ifconfig 或者安装iproute2mac工具,就可以使用ip命令了 |
ip -6 addr show dev eth0 | sed -n 's|^.inet6 ([^ ]/64).*$|\1|p' 选定/64ipv6 ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /ca1a/ {print $3}' 选中尾号CA1A的ip |
根据网卡地址查询 |
1 similar comment
根据网卡地址查询 |
我也遇到了这个问题,长的v6地址可以访问,短位的不行,但是我v6地址对应你们说的后几位是一直在变动的,有没有什么办法选择映射长的这一个地址啊。 |
输出最长行: awk '{ln=length}ln>max{delete result; max=ln}ln==max{result[NR]=$0}END{for(i in result) print result[i] }' 参考:https://www.baeldung.com/linux/print-longest-lines-in-file#using-theawk-command |
前四组2409:8a60:1111:2222这几位长得v6和短的v6地址都是一样的无法区分,后面的地址我看了一下记录。每次都不一样,不像上面的朋友有一个ff:fe是一直不变的,我就没办法用这个方法进行筛选。 |
好的,我去试一下看看能否生效。 |
您好,我的版本不支持命令获取,我是centos7.9,升级镜像的命令是什么呀,没看到有 |
从 Releases 下载并解压 ddns-go 就可以了。 |
|
请将输出通过管道传入 ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}' | awk '{ln=length}ln>max{delete result; max=ln}ln==max{result[NR]=$0}END{for(i in result) print result[i] }' |
十分感谢,已经成功输出最长的ip地址。 |
您好,我又遇到一个问题 在我的群晖上输出的最长地址为fd7a开头的非公网v6地址,如何可以限制为240开通的最长地址啊 |
先看一下 Linux 仅获取纯公网 IPv6 地址 输出的是什么: ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}' |
有一个问题,我家的移动宽带7天会换一次ipv6地址,在换地址的那一天,我的所有设备都会存在两个ipv6地址 5692是旧的,5693是新的,当它存在两个地址时,只有新的ipv6地址可用,也就是只有5693可用,除非我重启光猫或者重启设备,又或者等待一天,否则旧地址无法消失 我使用了很多命令,它们都是匹配旧的地址,我不知道该如何匹配到新的那个 |
今天看到邮箱推送你的消息,你这个问题其实很简单,用我的指令再加一条 |
我也来提供一下我的方案 场景及需求我的ddns-go运行在主路由的openwrt上面,openwrt作为DHCP服务器分配ip,下面有若干设备,我的需求是根据mac地址获取我电脑主机的ipv6,更新到cloudflare。 命令
|
👍ty 实测有效,同时我找到了这个项目下另外一个和我这个差不多的issue,下面有个回答也可以参考一下 |
你好 电脑接的是路由器 ip -4 addr show eth1 只能获取到局域网IP解析 无法获取到公网IP解析 应该怎么办 |
用接口获取 |
感谢回答 |
配置文件有更改选择网口eth0还是eth1 但是是不起作用的 |
建议补一下网络知识 |
为什么不考虑使用 |
能不能在 ipv6 的 |
不准确+你不知道这个网站服务哪天会关 |
你开个issue吧 |
|
TLDR, 网站获取到的是临时ipv6地址,然而只出不进,导致IPV6业务不通 |
希望能有局域网内机器获取主路由公网IPv6地址的方案,,,🙏🙏🙏 |
按照 IPv6 的约定,对外暴露 IP地址 应当始终为 动态临时的IPv6地址 。 Windows Powershell 代码Get-NetIPAddress -AddressFamily IPv6 -PrefixOrigin RouterAdvertisement -SuffixOrigin Random -AddressState Preferred | Select-Object -ExpandProperty IPAddress Linux bash 代码因为 Linux 执行 ip route get 240c::6666 | grep -oE 'src.*$' | awk {'print $2'} |
通过软路由openwrt上安装DDns-go,来获取局域网中一台esxi主机的IPv6地址,我想的是通过mac地址来确定当前esxi的IPv6地址,输入ip -6 route | awk '{print $1}' | awk '/2408:?/' | awk -F::/ '{print $1 "1C:83:41:41:A0:BA"}' | tail -1 后,也拿到了正确的ipv6地址,但是多了个"\n"。 请问怎么能把\n 删掉呢? |
在结尾添加 ip -6 route | awk '{print $1}' | awk '/2408:?/' | awk -F::/ '{print $1 "1C:83:41:41:A0:BA"}' | tail -1 | tr -d '\n' 参考:https://stackoverflow.com/questions/12524308/bash-strip-trailing-linebreak-from-output |
这个方法用在安卓手机上,比如手机在开启代理时,代理了IPv6流量,同时使用了随机虚拟网卡,导致通过接口获取的不是真实IP,而是代理IP,所以先通过ip route过滤路由,找到本机默认的网卡,再去打印匹配到真实的IPv6地址 |
在win下也会由于会获取到旧ipv6地址导致不可用,个人通过阅读各位命令外加chatgpt写了一个新的: Get-NetIPAddress -AddressFamily IPv6 -PrefixOrigin RouterAdvertisement -SuffixOrigin Random -AddressState Preferred | Select-Object -ExpandProperty IPAddress | ForEach-Object { $_.Split(':')[0..3] + "XXXX:XXXX:XXXX:XXXX" -join ':'} |
我觉得你网关的 IPv6 配置有问题。按理来说被系统 Preferred 的临时 IPv6 地址都应该是有效的,因为系统就拿是它来上网冲浪的! 查看上网冲浪的 IPv6 地址: https://ipleak.net/ 建议检查一下命令 |
重新拨号了 输出的ip包含旧的前缀 当然不能用。 |
动态PD前缀不适合开启 DHCPv6 的 statefull ,最好 stateless 。有些地区的运营商仍会为旧的PD前缀提供路由,所以我的话也不能说得太满。你这种情况只能是 stateless 。方便的话,加我 tg: xfl12345 ,为你提供远程支持。 |
可能是我表述的不清楚。路由器重新拨号,但是设备网卡没有重启,所以存在多个前缀不同的v6地址。我用这段命令可以正确获取最新v6前缀并使用。 感谢你的回复。 我还有另一个问题:我通过win上的ddns-go给我的小米10进行ddns。目前发现小米虽然会组成固定的后缀 ,但是并不是通过mac地址来生成。(路由器重新拨号的话不影响这个后缀)。如果重启手机的话会有一段新的后缀,我已经设置了使用真实mac来链接wifi。 |
我的主路由是华硕的,自带ddns,我的问题是这个自带的ddns会同时解析非公网的ipv4和公网的ipv6,但是使用wireguard的时候客户端用域名的话总是会解析成ipv4导致连接不上,所以用ddnsgo,dig华硕给的那个域名来获取主路由的ipv6地址 不知道对你有没有用 我也想直接用ip neigh来着,毕竟少一个故障点,但是好像看不到主路由的公网ipv6地址,只有个ipv4的网关地址和内网ipv6地址(而且主路由自己得到的ipv6前缀好像和分配下去的前缀并不一样,不懂能不能这样搞 |
在#1107 更新了一下,应该能ssh到主路由的都能这样干了 |
借助GPT 以及本人修改后的 Linux脚本,可以通过输入 mac 地址获取 对应的EUI-64格式 的IPv6 地址
实际使用(IPv6前缀隐藏了4位)
|
我自己路由器是华硕 IPv6用的Stateful模式 所以家里的设备IPv6不是按照标准EUI-64格式 而是短的IPv6,这里分享一下我用一台Linux获取家里其他设备的IPv6命令: |
通过命令获取IP,可分享出自己的脚本,方便大家
crtl+c
crtl+v
。The text was updated successfully, but these errors were encountered: