2012-02-15 38 views

Trả lời

49

Hãy thử điều này:

InetAddress address = InetAddress.getByName(new URL(urlString).getHost()); 

Để có được IP liệu:

String ip = address.getHostAddress(); 
+1

Cảm ơn mà làm việc, mặc dù nó sẽ trả về một tên/địa chỉ ip. Nếu tôi muốn sử dụng địa chỉ IP cho một ổ cắm, tôi có cần sử dụng dấu '/' làm dấu phân tách để chỉ trích xuất địa chỉ IP hay nó sẽ hoạt động như thế nào? – user1205853

+2

chỉ cần gọi address.getHostAddress() trên đối tượng InetAddess để nhận phiên bản chuỗi của IP. Hoặc tốt hơn, tạo socket trực tiếp với đối tượng InetAddress. – brettw

+0

@brettw: Tôi đã chỉnh sửa câu trả lời cùng một lúc mà bạn đã nhận xét. –

10

Bạn cần phải cung cấp cho hostname-getByName() phương pháp và nó trả

địa chỉ IP của một host , với tên của chủ nhà.

URL url = new URL("http://www.engineering.uiowa.edu/~hawkeng//fall01/graphics/potato.gif"); 
System.out.println(url.getHost()); 
InetAddress address = InetAddress.getByName(url.getHost()); 
System.out.println(address.toString()); 

Output = www.engineering.uiowa.edu/128.255.17.182

Để có được IP address

String temp = address.toString(); 
String IP = temp.substring(temp.indexOf("/")+1,temp.length()); 
Các vấn đề liên quan