é possível enviar o ip do conector remoto via netcat?

é possível enviar o ip do conector remoto via netcat?

Na verdade eu quero fazer algo comoifconfig.mefuncionalidade, mas apenas para minha rede interna. Eu vejo como algo no servidor escuta alguma porta e envia o ip da máquina remota conectada.

Parece que ncé um ótimo utilitário para o meu problema (também não tenho nenhum php/python/qualquer coisa no servidor. Apenas shell e ferramentas unix padrão).

Posso ver o IP remoto e o nome do DNS se eu iniciar nc -vve me conectar a ele a partir do sistema remoto, mas não consigo encontrar uma maneira de enviá-los para o host remoto.

Ou talvez eu tenha escolhido um caminho muito estranho e haja outra solução mais simples?

Responder1

Você poderia usar algo assim:

while true; do nc -lvp 1337 -c "echo -n 'Your IP is: '; grep connect my.ip | cut -d'[' -f 3 | cut -d']' -f 1" 2> my.ip; done

ncserá executado em loop infinito ouvindo na porta 1337com opção detalhada que gravará informações sobre o host remoto no arquivo stderr. stderré redirecionado para o arquivo my.ip. A opção -cpermite ncexecutar algo para "tratar" da conexão. Neste caso, iremos a seguir buscar os endereços IP do my.iparquivo.

pbm@lantea:~$ curl http://tauri:1337
Your IP is: 192.168.0.100

Responder2

while true; do nc -l -v 3333 2> status | while read msg; do ip=$(cat status | grep -o -P '(?<=from).*(?=port)') && notify-send "$ip" "$msg" -i gtk-network; done ; done

Redirecionarstderrpara um arquivo chamadostatus; então ele lê o ip do conector remoto do arquivo; finalmente mostra o ip na mensagem notify-osd.

Capturas de tela do conector remoto nc


Observação: quando alguém se conecta à mesma porta de outro computadornãogeralmente coloca isso em stderr: connection from 10.10.0.1 port 3333 [tcp/*] accepted. Eu simplesmente extraio o endereço IP usandogrep.

informação relacionada