如何使用 bash 在 Curl 中生成随机 IP

如何使用 bash 在 Curl 中生成随机 IP

如何在 Curl 请求中使用随机 ip 地址,我在 Curl 中使用此代码,但返回我的本地 ip http://ifconfig.me

printf "%d.%d.%d.%d\n" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))"

在卷曲中

curl --header 'X-Forwarded-For: printf "%d.%d.%d.%d\n" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))"' http://ifconfig.me

答案1

你引用的是错误的。你可以试试:

curl --header "X-Forwarded-For: $(printf "%d.%d.%d.%d" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))" "$((RANDOM % 256))")"

您可以摆脱内部引号,甚至完全摆脱printf

curl --header "X-Forwarded-for: $((RANDOM % 256)).$((RANDOM % 256)).$((RANDOM % 256)).$((RANDOM % 256))"

然而,目标网站是否接受则完全X-Forwarded-For是另一回事。设置此标头实际上不会向目标站点隐藏您自己的 IP。

答案2

我会建议这个设计

shuf -i 0-255 -rn4 | paste -sd.

但它会失败,printf因为 IP 中的第一个值不应该等于 0

printf %d.%d.%d.%d $((RANDOM%255+1)) $((RANDOM%256)){,,}

首先shell打开“大括号扩展”,然后替换变量的值

答案3

你忘记了Python:

$ python3 -c 'import ipaddress; import random; print( str( ipaddress.IPv4Address( random.randint( 0, 4294967295 ) ) ) )'

在你的情况下

$ curl --header "X-Forwarded-For: $( python3 -c 'import ipaddress; import random; print( str( ipaddress.IPv4Address( random.randint( 0, 4294967295 ) ) ) )' )"  http://ifconfig.me

有很多漂亮的选择。看help( ipaddress )。你可以检查is_global,,,,等等......is_loopbackis_ipv6is_subnet

相关内容