¿Es posible enviar la ip del conector remoto a través de netcat?

¿Es posible enviar la ip del conector remoto a través de netcat?

En realidad quiero hacer algo comoifconfig.mefuncionalidad pero sólo para mi red interna. Lo veo como algo en el servidor escucha algún puerto y envía la IP de la máquina remota conectada.

Parece que nces una gran utilidad para mi problema (tampoco tengo php/python/lo que sea en el servidor. Solo solo herramientas de shell y Unix estándar).

Puedo ver la IP remota y el nombre DNS si lo inicio nc -vvy me conecto desde el sistema remoto, pero no puedo encontrar la manera de enviarlos al host remoto.

¿O tal vez elegí un camino demasiado extraño y hay otra solución más sencilla?

Respuesta1

Podrías usar algo como esto:

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

ncse ejecutará en un bucle sin fin escuchando en el puerto 1337con una opción detallada que escribirá información sobre el host remoto stderr. stderres redirigido al archivo my.ip. Opción -cque ncpermite ejecutar algo para "manejar" la conexión. En este caso, a continuación buscaremos las direcciones IP del my.iparchivo.

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

Respuesta2

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

Redirigirstderra un archivo llamadoestado; luego lee la ip del conector remoto del archivo; finalmente muestra la ip en el mensaje de notificación-osd.

capturas de pantalla del conector remoto nc


Nota: cuando alguien se conecta al mismo puerto desde otra computadoraCarolina del NorteGeneralmente pone esto en stderr: connection from 10.10.0.1 port 3333 [tcp/*] accepted. Simplemente extraigo la dirección IP usandogrep.

información relacionada