扫描给定主机的TCP端口: import java.net.*; import java.io.*;public class usePortScanner { public static void main(String[] args) { String host = "localhost"; if (args.length > 0) { host = args[0]; } //扫描主机端口 for (int i = 1; i < 1024; i++) { try { //建立Socket Socket s = new Socket(host, i); //输出端口信息 System.out.println("There is a server on port " + i + " of " + host); } catch (UnknownHostException e) { System.err.println(e); break; } catch (IOException e) { // must not be a server on this port } } // end for } // end main } // end usePortScanner
catch IOException出现异常说明端口没打开。。开了防火墙的情况除外。 :)
不知道对不对.
catch IOException应该可行!
import java.net.*;
import java.io.*;public class usePortScanner
{
public static void main(String[] args)
{
String host = "localhost";
if (args.length > 0)
{
host = args[0];
}
//扫描主机端口
for (int i = 1; i < 1024; i++)
{
try
{
//建立Socket
Socket s = new Socket(host, i);
//输出端口信息
System.out.println("There is a server on port " + i + " of " + host);
}
catch (UnknownHostException e)
{
System.err.println(e);
break;
}
catch (IOException e)
{
// must not be a server on this port
}
} // end for
} // end main
} // end usePortScanner
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING
TCP 0.0.0.0:6789 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1050 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1080 0.0.0.0:0 LISTENING
TCP 192.168.20.111:139 0.0.0.0:0 LISTENING
TCP 192.168.20.111:1100 192.168.17.100:8889 ESTABLISHED
TCP 192.168.20.111:1164 192.168.17.251:1533 ESTABLISHED
TCP 192.168.20.111:1228 192.168.17.100:8889 ESTABLISHED
TCP 192.168.20.111:1401 192.168.17.137:3389 ESTABLISHED
TCP 192.168.20.111:2193 192.168.17.150:445 TIME_WAIT
TCP 192.168.20.111:2198 192.168.17.100:8889 ESTABLISHED
TCP 192.168.20.111:3314 192.168.17.201:1521 ESTABLISHED
TCP 192.168.20.111:4643 192.168.30.250:52514 ESTABLISHED
TCP 192.168.20.111:4645 192.168.30.250:51819 ESTABLISHED
UDP 0.0.0.0:161 *:*
UDP 0.0.0.0:162 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:500 *:*
UDP 0.0.0.0:1025 *:*
UDP 0.0.0.0:1026 *:*
UDP 0.0.0.0:1038 *:*
UDP 0.0.0.0:1774 *:*
UDP 0.0.0.0:1855 *:*
UDP 0.0.0.0:2197 *:*
UDP 0.0.0.0:3915 *:*
UDP 0.0.0.0:4500 *:*
UDP 0.0.0.0:4598 *:*
UDP 0.0.0.0:4642 *:*
UDP 0.0.0.0:6000 *:*
UDP 0.0.0.0:6001 *:*
UDP 0.0.0.0:6002 *:*
UDP 0.0.0.0:6003 *:*
UDP 0.0.0.0:6004 *:*
UDP 0.0.0.0:6005 *:*
UDP 0.0.0.0:6006 *:*
UDP 0.0.0.0:6007 *:*
UDP 0.0.0.0:6008 *:*
UDP 0.0.0.0:6009 *:*
UDP 0.0.0.0:6010 *:*
UDP 0.0.0.0:6011 *:*
UDP 0.0.0.0:6012 *:*
UDP 0.0.0.0:6013 *:*
UDP 0.0.0.0:6014 *:*
UDP 0.0.0.0:6015 *:*
UDP 0.0.0.0:6016 *:*
UDP 0.0.0.0:6017 *:*
UDP 0.0.0.0:11113 *:*
UDP 127.0.0.1:123 *:*
UDP 127.0.0.1:1027 *:*
UDP 127.0.0.1:1043 *:*
UDP 127.0.0.1:1078 *:*
UDP 127.0.0.1:1088 *:*
UDP 127.0.0.1:1245 *:*
UDP 127.0.0.1:1317 *:*
UDP 127.0.0.1:1419 *:*
UDP 127.0.0.1:1900 *:*
UDP 127.0.0.1:4985 *:*
UDP 192.168.20.111:123 *:*
UDP 192.168.20.111:137 *:*
UDP 192.168.20.111:138 *:*
UDP 192.168.20.111:1900 *:*
这是我本机显示的端口监听状态,我现在如果想测试UDP的161端口,不知道怎么做?当协议是TCP的时候我当然可以用socket,但是现在我想测试的是UDP协议的端口。