2017-03-02 8 views
0

를 해결하기 위해 URL에 : 입력하는 경우 : <IP-Address> -> 출력 (정확한!) : www.example.comIP 내가 원하는

문제 : 웹의 IP-주소 (51.254.201.70)의 하나가있는 경우 어떤 웹 사이트인지 알아 내고 싶다면 다음과 같이하면됩니다. 70.ip-51-254-201.eu. 나는 정확한 www.webmoney.ru을 얻으려면

나는 알아했습니다 무엇 : 어떻게 HTML 코드를 전송되는 웹 사이트를 찾을 것

package PACK; 

import java.net.InetAddress; 
import java.net.UnknownHostException; 

public class IPtoHost4 { 

    // Input:www.webmoney.com -> Output: All IP-Adresses of this Page 
public static void main(String[] args) throws UnknownHostException { 


     for (InetAddress addr : InetAddress.getAllByName("www.webmoney.ru")) { 

      System.out.println(addr.getHostAddress() + " : " + getHost(addr)); 
     } 

    // Output: 
    // 5.199.142.158 : www.webmoney.ru 
    // 51.254.201.70 : www.webmoney.ru 
    // 62.210.115.140 : www.webmoney.ru 
    // 88.99.82.144 : www.webmoney.ru 

    // Input:All-IPs -> Output: hostnames 
    String[] ips = { "5.199.142.158", "51.254.201.70", "62.210.115.140", "88.99.82.144" }; 
    for (String i : ips) { 
     InetAddress ip = null; 
     ip = InetAddress.getByName(i); 
     System.out.println(getHost(ip)); 
    } 
    // Output: 
    // z158.zebra.servdiscount-customer.com 
    // 70.ip-51-254-201.eu 
    // 62-210-115-140.rev.poneytelecom.eu 
    // static.144.82.99.88.clients.your-server.de 

} 

static String getHost(InetAddress ip) { 
    String hostName = ""; 
    hostName = ip.getHostName(); 

    return hostName; 

} 

}

+0

당신이 얻을 해당 도메인 아마 IPS에 대한 올바른 것들이다 :

예를 참조하십시오. 질의하는 도메인이 사용자를 리디렉션한다고 가정 할 수 있습니다. 게다가 "webmoney"와 ".ru"는 어쨌든 비린내 같아서 조심해야합니다. – Thomas

+0

하나의 IP 주소에 여러 개의 도메인 이름 ([가상 호스팅] (https://en.wikipedia.org/wiki/Virtual_hosting))이있을 수 있습니다. –

+0

안녕하세요. Wireshark의 IP 주소가 있습니다. 그리고 내 서버에서 내 사용자가 방문하는 실제 HTML 웹 사이트 (DNS 서버 및 도메인은 저에게 흥미롭지 않습니다.)를 찾았 으면합니다. –

답변

0

내가 해결책을 가지고 리디렉션을위한 301/302. 하지만 내가 HTML 코드 200 인 경우 호스트 이름이 인 것을 식별 할 수 있습니다. 웹 사이트의 전체 이름을 확인하고 싶습니다.

public static void main(String[] args) throws IOException { 

    String ip = "78.129.242.2"; 
    URL myURL = new URL("http://" + ip); 

    HttpURLConnection con = (HttpURLConnection) myURL.openConnection(); 
    con.setInstanceFollowRedirects(false); 
    con.connect(); 

    // HTML-Code from a website 
    int responseCode = con.getResponseCode(); 
    System.out.println(responseCode); 

    // HTTP 200 OK 
    if (responseCode == 200) { 
     InetAddress addr = null; 
     addr = InetAddress.getByName(ip); 
     String host = addr.getHostName(); 
     System.out.println(host); 
    } 

    // HTTP 301 oder 302 redirect 
    else if (responseCode == 301 || responseCode == 302) { 
     String location = con.getHeaderField("Location"); 
     System.out.println(location); 
    } else { 
     System.out.println("Bad Web Site" + " ResponceCode: " + responseCode); 
    } 
}