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

7

Na verdade, quero criar algo como a funcionalidade ifconfig.me , mas apenas para minha rede interna. Eu vejo como algo no servidor escuta alguma porta e envia ip de uma máquina remota conectada.

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

Eu posso ver o nome do ip e do dns remotos se eu iniciar o nc -vv e me conectar a ele do sistema remoto, mas não consigo encontrar a maneira de enviá-los para o host remoto.

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

    
por rush 22.03.2012 / 15:38

2 respostas

7

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

nc será executado em loop infinito que atende na porta 1337 com a opção detalhada que gravará informações sobre o host remoto em stderr . stderr é redirecionado para o arquivo my.ip . A opção -c para nc permite executar algo para "manipular" a conexão. Neste caso, vamos em seguida grep para endereços IP de my.ip file.

pbm@lantea:~$ curl http://tauri:1337
Your IP is: 192.168.0.100
    
por 22.03.2012 / 17:26
0
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

Redirecione stderr para um arquivo chamado status ; então ele lê ip do conector remoto do arquivo; finalmente mostra o ip na mensagem notify-osd.

Nota: quando alguém se conecta à mesma porta de outro computador nc gerneally coloca isso em stderr: connection from 10.10.0.1 port 3333 [tcp/*] accepted . eu simplesmente extraia o endereço IP usando grep .

    
por 05.06.2013 / 00:06

Tags