我似乎找不到任何能告诉我路由器中的端口是否打开的东西。这有可能吗?
我现在拥有的代码似乎并不是真的有效...
private void ScanPort()
{
string hostname = "localhost";
int portno = 9081;
IPAddress ipa = (IPAddress) Dns.GetHostAddresses(hostname)[0];
try
{
System.Net.Sockets.Socket sock =
new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork,
System.Net.Sockets.SocketType.Stream,
System.Net.Sockets.ProtocolType.Tcp);
sock.Connect(ipa, portno);
if (sock.Connected == true) // Port is in use and connection is successful
MessageBox.Show("Port is Closed");
sock.Close();
}
catch (System.Net.Sockets.SocketException ex)
{
if (ex.ErrorCode == 10061) // Port is unused and could not establish connection
MessageBox.Show("Port is Open!");
else
MessageBox.Show(ex.Message);
}
}发布于 2014-01-13 17:04:52
无法从LAN内部测试路由器上的端口转发,您需要从WAN (internet)端连接,以查看端口转发是否正常工作。
几个互联网站点提供了检查端口是否打开的服务:
What's My IP Port Scanner
如果您想使用自己的代码进行检查,则需要确保TCP/IP连接通过外部代理重新路由或设置隧道。这与你的代码无关,这是基本的网络基础知识。
https://stackoverflow.com/questions/11837541
复制相似问题