C#套接字,如何获取所有侦听(套接字)计算机的IP地址和端口
我使用C#套接字在设备(客户端)和计算机(服务器)之间建立连接。 除了我试图避免用户在设备上输入要连接的IP地址和端口号之外,所有这些都正常工作。相反,我想要一个列表框或所有IP地址的下拉列表,带有监听套接字。只是想知道是否有一种方法可以通过侦听(套接字)获取主机的所有IP地址和端口号C#套接字,如何获取所有侦听(套接字)计算机的IP地址和端口,c#,sockets,C#,Sockets,我使用C#套接字在设备(客户端)和计算机(服务器)之间建立连接。 除了我试图避免用户在设备上输入要连接的IP地址和端口号之外,所有这些都正常工作。相反,我想要一个列表框或所有IP地址的下拉列表,带有监听套接字。只是想知道是否有一种方法可以通过侦听(套接字)获取主机的所有IP地址和端口号 谢谢你的帮助!:) 您要求执行的操作称为端口扫描。它主要包括测试一个范围内的每个IP地址和每个端口,并报告该尝试的成功。它的速度很慢,如果网络上存在任何类型的威胁监视,它将导致大量警报,因为端口扫描是攻击者试图发
谢谢你的帮助!:) 您要求执行的操作称为端口扫描。它主要包括测试一个范围内的每个IP地址和每个端口,并报告该尝试的成功。它的速度很慢,如果网络上存在任何类型的威胁监视,它将导致大量警报,因为端口扫描是攻击者试图发现网络漏洞的方式之一 所以简而言之,这是一个坏主意,可能没有足够的响应能力供您用于此目的。相反,您可能会考虑使用中央服务器作为每个服务器将登记的“目录”。
或者,您可以在子网上等待服务器响应。例如,这就是一些对等网络在Windows中的工作方式。请注意,这假定您也是服务器的开发人员,您可以添加服务器侦听广播所需的逻辑。通过使用UDP广播,您可以将数据发送到正在固定端口侦听的服务器。以下是工作示例
foreach (IPAddress ip in allLocalNetworkAddresses.AddressList)
{
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//Allow sending broadcast messages
client.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.Broadcast, 1);
//Create endpoint, broadcast.
IPEndPoint AllEndPoint = new IPEndPoint(IPAddress.Broadcast, Port);
byte[] sendData = Encoding.ASCII.GetBytes("1");
//Send message to everyone on this network
client.SendTo(sendData, AllEndPoint);
Console.Write("Client send '1' to " + AllEndPoint.ToString() +
Environment.NewLine);
所以,您想知道如何进行端口扫描?或者您有固定的端口号,您想检查网络中的所有计算机是否正在侦听特定的端口?如下所述,端口扫描是一个坏主意。那么dzendras,固定端口号与端口扫描有何不同?谢谢:)如果你有一个固定的端口,你可以使用UDP将一个数据包发送到广播中的一个特定端口。只有服务器的实例才会读取它并向您返回响应。我在下面贴了C#example。看看,告诉我这是不是你需要的。