2014-01-10 26 views
1
public class PortScan 
{ 

public String ip; 

public PortScan(String ip) 
{ 
    this.ip = ip; 
} 
public void setIP(String ip) 
{ 
    this.ip = ip; 
} 

public String getIP() 
{ 
    return this.ip; 
} 
public void scan() 
{ 
    int i = 1; 
    String ip = this.getIP(); 
    while(i < 50000) 
    { 
    try 
    { 
     Socket sock = new Socket(ip, i); 
     InputStream in = sock.getInputStream(); 
     OutputStream out = sock.getOutputStream(); 
     BufferedInputStream bins = new BufferedInputStream(in); 
     BufferedReader bin = new BufferedReader(new InputStreamReader(bins)); 
     String response = bin.readLine(); 
     System.out.println(response); 
     System.out.println(ip + ":" + i); 
     sock.close(); 
    } 
    catch(UnknownHostException e) 
    { 

     //System.out.println("No host found."); 
    } 
    catch(IOException e) 
    { 

     //System.out.println("Problem connection to host."); 
    } 
    i++; 
    } 
} 
public static void main(String[] args) 
{ 
    PortScan aPortScan = new PortScan("127.1.1.1"); 

    aPortScan.scan(); 
} 
} 

控制檯輸出:我是否必須寫入套接字以讓服務器向我發送讀取響應以獲取某些服務的橫幅?

SSH-2.0-OpenSSH_6.0p1 Debian-4 
127.1.1.1:22< 
null 
127.1.1.1:80 

回答

1

是,一些服務需要,以輸出橫幅互動。對於HTTP服務器,您必須發送GET/HTTP/1.1,然後解析Server:行的響應。

相關問題