【问题标题】:Any Language - Port Listener? [UDP]任何语言 - 端口监听器? [UDP]
【发布时间】:2015-04-07 04:01:50
【问题描述】:

我正在寻找可以查看 UDP 连接的任何类型的端口侦听器。原因是我正在尝试编写一个程序来查看人们在游戏中的聊天内容并做出相应的响应。 [并希望创建一个用于举办锦标赛的服务器自动化程序]

我尝试了 VB.NET 解决方案,但它会关闭连接,尽管尝试使其并排连接数小时。

进口系统.Net 导入 System.Net.Sockets 公开课形式1 公共子 Form1_Load() 处理 Me.Load '做 '将 iReceivingPort 调暗为整数 = 58690 '创建一个用于读取传入数据的 UdpClient。 'Dim inEndPoint = New IPEndPoint(IPAddress.Parse("192.168.1.100"), iReceivingPort) 'Dim endPoint = New IPEndPoint(IPAddress.Parse("192.168.1.100"), iReceivingPort) 'System.Net.IPAddress.Parse("0.0.0.0"), iReceivingPort '暗接收客户端 = 新 System.Net.Sockets.UdpClient() 'ReceivingClient.ExclusiveAddressUse = False 'ReceivingClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True) 'ReceivingClient.Client.Bind(inEndPoint) 暗 ip = IPAddress.Parse("192.168.1.100") 暗端口 = 65267 暗淡套接字 = 新套接字(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp) socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True) socket.Bind(新 IPEndPoint(ip, 端口)) '创建一个 IPEndPoint 来记录发送者的 IP 地址和端口号。 ' IPEndPoint 将允许您读取从任何来源发送的数据报。 '将 RemoteIpEndPoint 调暗为新 System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), iReceivingPort) 尝试 ' 阻塞,直到消息从远程主机在此套接字上返回。 昏暗的缓冲区 Dim receiveBytes As [Byte]() = socket.Receive(buffer) Dim returnData As String = System.Text.Encoding.ASCII.GetString(receiveBytes) Console.WriteLine(("这是您收到的消息" + returnData.ToString())) 'Console.WriteLine(("这条消息是从" + inEndPoint.Address.ToString() + "的端口号" + inEndPoint.Port.ToString())) 将 e 捕获为异常 Console.WriteLine(e.ToString()) 结束尝试 ' System.Threading.Thread.Sleep(1000) ' 接收客户端.Close() '环形 End Sub 'MyUdpClientCommunicator 结束类

找到了解决方案,如果有人想要的话:[PYTHON]

import socket, struct
# the public network interface
HOST = socket.gethostbyname(socket.gethostname())
# create a raw socket and bind it to the public interface
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind(("192.168.1.100", 63578))

while 1:
    # Include IP headers
    s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
    # receive all packages
    s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
    # receive a package
    packet, address = s.recvfrom(65565)
    print(packet)
    # disabled promiscuous mode
    s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)

代码不完整,但这是我需要的。

【问题讨论】:

    标签: vb.net sockets


    【解决方案1】:

    【讨论】:

    • 这很有用,但我可以做一个宏/与之通信吗?
    • 不完全确定。这可能是一个起点。 [nmap.org/book/nse-api.html]。抱歉,我知道这些不是最有用的答案(例如步骤 1、2、3 ......),但也许它们能让你朝着正确的方向前进。
    • 非常感谢! ;) - NVM 链接已失效
    • 会调查的。稍后见。 :P
    【解决方案2】:

    尝试学习 ruby​​ https://www.ruby-lang.org/en/ 然后使用套接字 gem 来处理套接字。这很容易学习。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      • 2017-05-10
      • 1970-01-01
      相关资源
      最近更新 更多