возможно ли отправить IP-адрес удаленного коннектора через netcat?

возможно ли отправить IP-адрес удаленного коннектора через netcat?

На самом деле я хочу сделать что-то вродеifconfig.meфункциональность, но только для моей внутренней сети. Я вижу это так, как что-то на сервере слушает какой-то порт и отправляет ip подключенной удаленной машины.

Кажется, ncэто отличная утилита для решения моей проблемы (к тому же у меня на сервере нет никаких PHP/Python/чего-либо еще. Только оболочка и стандартные инструменты Unix).

Я вижу удаленный IP-адрес и DNS-имя, если запускаю nc -vvи подключаюсь к нему с удаленной системы, но не могу найти способ отправить их на удаленный хост.

Или, может быть, я выбрал слишком странный путь и есть другое, более простое решение?

решение1

Вы можете использовать что-то вроде этого:

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будет выполнен в бесконечном цикле прослушивания порта 1337с подробным параметром, который запишет информацию об удаленном хосте в stderr. stderrперенаправляется в файл my.ip. Параметр -cfor ncпозволяет выполнить что-то для "обработки" соединения. В этом случае мы затем выполним grep для IP-адреса из my.ipфайла.

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

решение2

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

Перенаправитьstderrв файл под названиемположение дел; затем считывает IP-адрес удаленного коннектора из файла; наконец, отображает IP-адрес в сообщении notify-osd.

скриншоты nc remote-connector


Примечание: когда кто-то подключается к тому же порту с другого компьютеранкобычно помещает это в stderr: connection from 10.10.0.1 port 3333 [tcp/*] accepted. Я просто извлекаю IP-адрес, используягрэп.

Связанный контент