ddns-go
ddns-go copied to clipboard
通过命令获取IP参考
通过命令获取IP,可分享出自己的脚本,方便大家crtl+c
crtl+v
。
- 在Linux系统中获取网卡eth1的IPv6地址
ip -6 addr show eth1
- 在Linux系统中获取网卡eth1的IPv4地址
ip -4 addr show eth1
- Linux get IPv6 prefix (移动开头2409)
ip -6 route | awk '{print $1}' | awk '/2409:?/' | awk -F::/ '{print $1 "any other suffix of other mac"}'
请问有办法通过命令获取同局域网其他设备Ipv6吗?
请问有办法通过命令获取同局域网其他设备Ipv6吗?
Linux get IPv6 prefix (移动开头2409)
ip -6 route | awk '{print $1}' | awk '/2409:?/' | awk -F::/ '{print $1 "any other suffix of other mac"}'
把any other suffix of other mac改成其它设备的IPv6(EUI-64)后缀
Windows PowerShell获取ip
参阅微软文档根据网络环境自定义一些参数进行筛选
自用获取公网ipv6
Get-NetIPAddress -AddressFamily IPv6 -AddressState Preferred -SuffixOrigin Link -Type Unicast -PrefixOrigin RouterAdvertisement
@jeessy2 目前匹配正则表达式只能按照顺序选择,大部分时候没问题,但偶尔会遇到一个问题。我这边网卡的IPV6地址,总是有2个地址,一个长一点的,一个短一点的。我发现只有长的才能用外网访问,短的没法访问。但是长的在前还是短的在前有些随机性。
比如这种: eth0(2409:8a60:1111:2222:20c:29ff:feea:b763, 2409:8a60:1111:2222::3b3),有时候又会变成 eth0(2409:8a60:1111:2222::3b3, 2409:8a60:1111:2222:20c:29ff:feea:b763)
请问能不能设个选项,固定选择长一点的那个,这样就不用选具体1或者2了,谢谢
@jeessy2 目前匹配正则表达式只能按照顺序选择,大部分时候没问题,但偶尔会遇到一个问题。我这边网卡的IPV6地址,总是有2个地址,一个长一点的,一个短一点的。我发现只有长的才能用外网访问,短的没法访问。但是长的在前还是短的在前有些随机性。
比如这种: eth0(2409:8a60:1111:2222:20c:29ff:feea:b763, 2409:8a60:1111:2222::3b3),有时候又会变成 eth0(2409:8a60:1111:2222::3b3, 2409:8a60:1111:2222:20c:29ff:feea:b763)
请问能不能设个选项,固定选择长一点的那个,这样就不用选具体1或者2了,谢谢
ff:fe是长的那个?如果是直接正则表式中输入ff:fe
ff:fe
请问不需要输入@之类的符号吗?直接在匹配正则表达式栏里面填写ff:fe就可以了吗?
请问不需要输入@之类的符号吗?直接在匹配正则表达式栏里面填写ff:fe就可以了吗?
应该可以
不加。@是指定第几个,你这个是匹配字符串正则
不加。@是指定第几个,你这个是匹配字符串正则
谢谢,测试可以了。只要不换网卡的Mac,理论上最后几位地址应该不会变的。
同谢 @WaterLemons2k
Linux 仅获取纯公网 IPv6 地址
-
ip
ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}'
-
ifconfig
ifconfig | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}'
参考:https://superuser.com/a/1057290
-
ip -6 addr list scope global | grep -v " fd" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p
MacOS下没有ip命令,可以使用ifconfig
ifconfig en0 | grep inet
ipv4&ipv6
ifconfig en0 | grep inet6
ipv6
ipconfig getv6packet en0
或者安装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
根据网卡地址查询
ip -6 n | grep ^2.*00:11:22:33:44:55 | tail -n 1 | awk '{print $1}'
根据网卡地址查询
ip -6 n | grep ^2.*00:11:22:33:44:55 | tail -n 1 | awk '{print $1}'
不加。@是指定第几个,你这个是匹配字符串正则
谢谢,测试可以了。只要不换网卡的Mac,理论上最后几位地址应该不会变的。
同谢 @WaterLemons2k
我也遇到了这个问题,长的v6地址可以访问,短位的不行,但是我v6地址对应你们说的后几位是一直在变动的,有没有什么办法选择映射长的这一个地址啊。
我也遇到了这个问题,长的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
不加。@是指定第几个,你这个是匹配字符串正则
谢谢,测试可以了。只要不换网卡的Mac,理论上最后几位地址应该不会变的。 同谢 @WaterLemons2k
我也遇到了这个问题,长的v6地址可以访问,短位的不行,但是我v6地址对应你们说的后几位是一直在变动的,有没有什么办法选择映射长的这一个地址啊。
前四组2409:8a60:1111:2222这几位长得v6和短的v6地址都是一样的无法区分,后面的地址我看了一下记录。每次都不一样,不像上面的朋友有一个ff:fe是一直不变的,我就没办法用这个方法进行筛选。
我也遇到了这个问题,长的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
好的,我去试一下看看能否生效。
我也遇到了这个问题,长的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
您好,我的版本不支持命令获取,我是centos7.9,升级镜像的命令是什么呀,没看到有
我也遇到了这个问题,长的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
好的,我去试一下看看能否生效。 最新版镜像,,命令获取提示这个 获取IPv6结果失败! 命令:/bin/bash -rc awk '{ln=length}ln>max{delete result; max=ln}ln==max{result[NR]=$0}END{for(i in result) print result[i] }',标准输出:"" 2023/05/18 10:46:01 未能获取IPv6地址, 将不会更新
最新版镜像,,命令获取提示这个 获取IPv6结果失败! 命令:/bin/bash -rc awk '{ln=length}ln>max{delete result; max=ln}ln==max{result[NR]=$0}END{for(i in result) print result[i] }',标准输出:"" 2023/05/18 10:46:01 未能获取IPv6地址, 将不会更新
请将输出通过管道传入 awk
才能输出最长行。
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] }'
最新版镜像,,命令获取提示这个 获取IPv6结果失败! 命令:/bin/bash -rc awk '{ln=length}ln>max{delete result; max=ln}ln==max{result[NR]=$0}END{for(i in result) print result[i] }',标准输出:"" 2023/05/18 10:46:01 未能获取IPv6地址, 将不会更新
请将输出通过管道传入
awk
才能输出最长行。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地址。
最新版镜像,,命令获取提示这个 获取IPv6结果失败! 命令:/bin/bash -rc awk '{ln=length}ln>max{delete result; max=ln}ln==max{result[NR]=$0}END{for(i in result) print result[i] }',标准输出:"" 2023/05/18 10:46:01 未能获取IPv6地址, 将不会更新
请将输出通过管道传入
awk
才能输出最长行。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] }'
您好,我又遇到一个问题 在我的群晖上输出的最长地址为fd7a开头的非公网v6地址,如何可以限制为240开通的最长地址啊
您好,我又遇到一个问题 在我的群晖上输出的最长地址为fd7a开头的非公网v6地址,如何可以限制为240开通的最长地址啊
先看一下 Linux 仅获取纯公网 IPv6 地址 输出的是什么:
ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}'
您好,我又遇到一个问题 在我的群晖上输出的最长地址为fd7a开头的非公网v6地址,如何可以限制为240开通的最长地址啊
先看一下 Linux 仅获取纯公网 IPv6 地址 输出的是什么:
ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}'
输出的是 更新域名解析 成功!IP: 2408:826a:1c80:5a31::db9 2023/05/18 11:06:31 更新域名解析 成功!IP: 2408:826a:1c80:5a31::db9
但是我从网卡获取的话 还有一个更长的地址为
输出的是 更新域名解析 成功!IP: 2408:826a:1c80:5a31::db9 2023/05/18 11:06:31 更新域名解析 成功!IP: 2408:826a:1c80:5a31::db9
但是我从网卡获取的话 还有一个更长的地址为
~使用 $3 ~ /^fd7a::/ { next;}
跳过输出 fd7a::
开头的 IPv6 地址:~
~shell~ ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} $3 ~ /^fd7a::/ { 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] }' ~
~
使用 $3 ~ /^fd7a:/ { next;}
跳过输出 fd7a:
开头的 IPv6 地址:
ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} $3 ~ /^fd7a:/ { 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] }'
此命令还是输出fd7a地址
2023/05/18 11:24:41 你的IP fd7a:115c:a1e0:ab12:4843:cd96:6262:587f 没有变化,