Как найти неизвестный IP с заданным портом - PullRequest
0 голосов
/ 18 июня 2019

Я использую Raspberry Pi в качестве сервера в нашей сети с IP: 172.20.X.X / 16

Планируется отправка широковещательного сообщения на порт 15555. Сервер получит сообщение и отправит мне свой eth0-IP .

Поскольку я не лучший в сети, у меня проблемы с созданием сценария, который отправляет IP-адрес вещателю, и особенно, если этот сценарий выполняется, когда Сервер получает что-либо через порт 15555

Я прочитал кое-что о команде "nc", но я не понимаю, решит ли это мою проблему:

https://stackoverflow.com/a/4739260/11397900

Так что на данный момент у меня есть 2 сценария:

Сценарий 1 содержит

#!/bin/bash

while :
do
    nc -k -l 15555 > sendIP.sh
    sleep 1
done

Скрипт 2 называется sendIP и содержит атм

#!/bin/bash

echo "Success"

И последнее, но не менее важное: мой C # -код для отправки трансляции:

private static string getServerIP(int port)
    {
        string IPString = String.Empty;

        IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse("172.20.255.255"), port);
        byte[] messageInbytes = Encoding.ASCII.GetBytes("Hallo");

        UdpClient udpClient = new UdpClient();

        udpClient.Send(messageInbytes, messageInbytes.Length, iPEndPoint);
        udpClient.Client.ReceiveTimeout = 1000;
        while (true)
        {
            try
            {
                var recvBuffer = udpClient.Receive(ref iPEndPoint);
                break;
            }
            catch
            {

            }
        }

        return iPEndPoint.Address.ToString();
    }

Ожидается, что на Raspberry в консоли будет стоять «Success», и c # -программа завершится, но на самом деле Программа не получит ответ

...