首页 > 解决方案 > 如何使用给定端口查找未知 IP

问题描述

我在我们的网络中使用树莓派作为服务器,IP:172.20.XX/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 并包含 atm

#!/bin/bash

echo "Success"

最后但并非最不重要的一点是,我发送广播的 C#-Code 是这样的:

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();
    }

预期是,在树莓上,控制台会出现“Success”,c#-程序结束,但实际上程序不会得到响应

标签: c#networkingdynamicipv4

解决方案


推荐阅读