como usar o bash para gerar IPs aleatórios no Curl

Aug 30 2020

Como usar o endereço IP aleatório na solicitação do Curl, estou usando esse código no Curl, mas retorne meu ip local do http://ifconfig.me

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

em Curl

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

Respostas

13 frostschutz Aug 30 2020 at 16:11

Você está citando incorretamente. Podes tentar:

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

Você pode se livrar das aspas internas e até mesmo printfinteiramente:

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

No entanto, se o site de destino aceita ou não, X-Forwarded-Foré outra questão. Definir este cabeçalho não esconde realmente seu próprio IP do site de destino.

3 nezabudka Aug 30 2020 at 17:24

Vou sugerir este design

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

Mas perde printfjá que o primeiro valor no IP não deve ser igual a 0

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

Primeiro o shell abre a "Extensão de chave" e então substitui os valores das variáveis

1 NicolaTeslaAlive Sep 04 2020 at 22:40

Você esqueceu o python:

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

no seu caso

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

Existem muitas opções bonitas. Veja help( ipaddress ). Você pode verificar is_global, is_loopback, is_ipv6, is_subnet, etc ...