【问题标题】:How to see what port was opened by router如何查看路由器打开了哪个端口
【发布时间】:2013-05-26 17:26:33
【问题描述】:

如果我执行以下操作:

UdpClient c = new UdpClient();
c.Connect(new System.Net.IPEndPoint(IPAddress.Parse("69.65.85.125"), 9900));
c.Send(new byte[] { 1,2,3,4,5 }, 5);

然后我将向我的路由器发送一个数据包,然后我的路由器将该数据包发送到 IP“69.65.85.125”。

如果我在 ip 为“69.65.85.125”的计算机上捕获该数据包的位置,我将能够看到路由器打开的端口 (client.RemoteEndpoint)。如果不在另一个端点捕获数据包,怎么可能看到这些信息?有没有办法查询路由器?

【问题讨论】:

  • 我想这取决于它是什么路由器。
  • 为什么这个问题被标记为关闭主题?这是一个很好的问题,可以回答。
  • @ScottChamberlain:这个问题不够清晰,我认为由于提到路由器而被误认为是硬件特定问题。发帖人应该澄清并可能更详细地介绍他们的用例(UDP 打孔?)

标签: c# udp hole-punching


【解决方案1】:

如果您的路由器支持,您可以通过 UPnP 查询。 Here is a wrapper library 为 .NET 找到的 UPnP,我从未使用过它,所以我不能给你任何建议,不管它好不好。

查看 ComponetsTest 程序以获取库 zip 中的示例代码。您需要参考 UPnP documentation 以了解您需要对该服务进行哪些调用。

来自message board of the library 有人询问如何查找端口映射。

WANPPPConnection 和 WANIPConnection 服务具有称为 GetSpecificPortMappingEntry,简单地调用这个遍历 从 0 开始索引,直到返回错误,每次调用都将返回 另一个 UPnP 端口映射,您还可以使用 不同的服务。

【讨论】:

    【解决方案2】:

    为了获得公共 IP,远程设备应通过向您发送一个 UDP 数据包来响应,其中包含它看到的 IP 地址和端口。这是STUN 服务器背后最基本的概念之一,通常用于 UDP 打孔算法。

    several free STUN servers 可以做到这一点。向其中一个发送“绑定”请求,您将收到包含您的公共 IP 地址和端口的响应。

    stun.l.google.com:19302
    stun1.l.google.com:19302
    stun2.l.google.com:19302
    stun3.l.google.com:19302
    stun4.l.google.com:19302
    stun01.sipphone.com
    stun.ekiga.net
    stun.fwdnet.net
    stun.ideasip.com
    stun.iptel.org
    stun.rixtelecom.se
    stun.schlund.de
    stunserver.org
    stun.softjoys.com
    stun.voiparound.com
    stun.voipbuster.com
    stun.voipstunt.com
    stun.voxgratia.org
    stun.xten.com
    

    如果您真的有兴趣进行适当的 UDP 打孔,请查看 ICE (Interactive Connectivity Establishment)。这是一个出色的算法,它使用 STUN 和另一个名为 TURN 的协议来保证对等点之间的成功连接。 (Apple 将其用于 Facetime 视频通话等。)

    如果您有兴趣,我工作的公司开发了一款名为 IceLink 的产品,该产品使用 ICE/STUN/TURN 在对等方之间建立直接数据流。 SDK 可用于 .NET、Mac、iOS、Android、Java、Windows Phone、Windows 8、Unity、Xamarin 等,甚至包括对WebRTC 音频/视频流的全面支持。

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 2010-12-23
      • 1970-01-01
      • 2011-05-22
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多