Старожил
Сообщения: 223
Благодарности: 53
|
Профиль
|
Отправить PM
| Цитировать
Если в вашей сети можно отправить широковещательный пакет, то можно попробовать netcat. Он пришел из юниксов, но есть версии под Windows.
Позволяет создать из командной строки соединение клиент - сервер с заданными параметрами.
Идея такая, на каждой из машин создается сервер, слушающий какой нибудь нестандартный порт, на каждой свой. Клиент не знает адрес сервера, сервер не знает адрес клиента. Поэтому клиент должен отправлять, например UDP-пакет на этот, слушаемый сервером порт и на широковещательный адрес.
Сервер, слушающий (UDP 65000 к примеру) создается командой nc.exe с ключем -l.
nc.exe -l -u -p 65000 -o log.txt
-u - протокол UDP, -p - номер порта. Выполняется запись дампа соединения в файл log.txt.
Клиент создает текстовый файлик, содержащий IP, например командой
ipconfig /all > ipconfig.txt
и выполняет подключение к серверу, адрес которого является широковещательным адресом для вашей подсети (например - 192.168.0.255). Лучше это сделать одним bat-файлом:
ipconfig /all > ipconfig.txt
nc.exe -p 65001 -u -n 192.168.0.255 65000 < ipconfig.txt
-p 65001 - это будет порт клиента, можно не задавать, но иногда полезно, для фильтрации трафика и т.п.
После выполнения этой команды, на сервере вы получите ipconfig клиента, где найдете его ip.
Это так, грубая схема, нужно будет слегка облагородить, создать правила фильтрации, возможно, использовать планировщик, и не закрывать сокет на сервере после соединения (ключ -L вместо -l)...
|