chatgpt 不灵了, bash 怎么优雅的在一行中用 mac 地址生成 EUI64 地址

184 天前
 feng0vx

要在 openwrt 中使用,复杂的操作命令可能不支持

1049 次点击
所在节点    程序员
13 条回复
wheat0r
184 天前
chatgpt 好使的,我刚刚试过了
feng0vx
184 天前
@wheat0r 发出来 看看嘛
wheat0r
184 天前
@feng0vx #2 “请不要把 AI 生成的内容发送到这里” via https://www.v2ex.com/about
我用的提示词很简单“如何在 bash 中使用常规命令通过 mac 地址生成 EUI64 地址?”
feng0vx
184 天前
@wheat0r 你运行试了吗,哈哈,结果不对
ysc3839
184 天前
其实也不麻烦吧,就是 MAC 首字节要用位运算把一个 bit 设置成 1 ,其他的字符串拼接就可以了
ysc3839
184 天前
已经测试过,OpenWrt 使用的 busybox ash 是支持 $((1 | 2))这种位运算的,所以并没有问题
wheat0r
184 天前
@feng0vx #4
$ ./mac_to_eui64.sh 02:42:fe:6e:19:d5
EUI-64: 00:42:fe:ff:fe:6e:19:d5
royzheng
184 天前
换个思路弄
curl -s 'https://nettools.club/_mac2ipv6_ajax' --data-raw 'mac=aa%3Abb%3Acc%3Add%3Aee%3Aff'
feng0vx
184 天前
@wheat0r 感觉哪里不对,哈哈哈 #7
feng0vx
184 天前
@royzheng 我本来是想用网关 MAC 生成网关的 EUI64 地址,再用::ffff:ffff:ffff:ffff 匹配本地链路和全球地址两个
现在不用 mac 生成了,用$(ip -6 route | awk '/^default/ {print $5}')获取一个网关地址,一般是本地链路,然后匹配它的::ffff:ffff:ffff:ffff

GATEWAY_IPV6=$(ip -6 route | awk '/^default/ {print $5}')
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV6 --ip6-protocol udp --ip6-destination ${GATEWAY_IPV6}/::ffff:ffff:ffff:ffff --ip6-destination-port 53 -j ACCEPT
ebtables -t filter -A FORWARD -i $INTERFACE -p IPV6 --ip6-destination ${GATEWAY_IPV6}/::ffff:ffff:ffff:ffff -j DROP
wheat0r
184 天前
@feng0vx #9 ipv6 不太懂,没看出来哪不对。倒是我试了几个 AI ,算出来都不一样。
feng0vx
184 天前
@wheat0r 你那个应该是 fe80::42:feff:fe6e:19d5
wheat0r
184 天前
@feng0vx #12 你说的这个是利用 EUI-64 生成的 Link-Local 地址吧,EUI-64 应该是专指由 48bit 的 mac 地址转出来的 64bit 标识符。完整的 ipv6 地址已经 128bit 了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX