package Port;
import java.io.*;
import java.net.*;public class PortScanner {
public static void main(String args[]){
String host="locallhost";
if(args.length>0)
host=args[0];//这段什么意思
new PortScanner().scan(host);
}

public void scan(String host){
Socket socket = null;
for(int port=1;port<1024;port++){
try {
socket=new Socket(host,port);
System.out.println("There is server on port"+port);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("can't conect port"+port);
}finally{
try {
if(socket!=null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}}
运行结果都是错误
can't conect port1
can't conect port2
can't conect port3
can't conect port4
can't conect port5
can't conect port6
can't conect port7
can't conect port8
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
java.net.UnknownHostException: locallhost
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
can't conect port9
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at Port.PortScanner.scan(PortScanner.java:17)
at Port.PortScanner.main(PortScanner.java:10)
只截了一部分

解决方案 »

  1.   

    host=args[0];//这段什么意思
    ——就是获取Java程序的启动参数,从命令行传递过来的,比如:
    C:\>java PortScanner xxooxxoo
    java.net.UnknownHostException: locallhost
    这个错误其实是因为你笔误所致,修改这里:
      String host="locallhost";
    改为:
      String host="localhost"; // 意指 本机(LocalHost)
      

  2.   

    Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:519)
    at java.net.Socket.connect(Socket.java:469)
    at java.net.Socket.<init>(Socket.java:366)
    at java.net.Socket.<init>(Socket.java:180)
    at Port.PortScanner.scan(PortScanner.java:17)
    at Port.PortScanner.main(PortScanner.java:10)
    变成这样了
      

  3.   

    正常,你本机一般也没开这些服务端口。你这个是用来扫描目标主机服务端口的。
    可以把 localhost 换成 www.baidu.com 应该可以扫描到 80 端口。