Java實現根據網址,解析埠號、ip、host
阿新 • • 發佈:2018-12-29
package test.ping; import java.io.IOException; import java.net.InetAddress; import java.net.URL; public class TestGetIp { public static void main(String[] args) throws IOException { // // String href = "http://www.cncounter.com/tools/shorturl.php"; String href = "http://www.baidu.com"; // 埠號 int port = parsePort(href); // 域名 String host = parseHost(href); // IP 地址 String address = parseIp(host); // System.out.println("host=" + host); System.out.println("port=" + port); System.out.println("address=" + address); } /** * 獲取埠號 * * @param href 網址, ftp, http, nntp, ... 等等 * @return * @throws IOException */ public static int parsePort(String href) throws IOException { //java.net中存在的類 URL url = new URL(href); // 埠號; 如果 href 中沒有明確指定則為 -1 int port = url.getPort(); if (port < 0) { // 獲取對應協議的預設埠號 port = url.getDefaultPort(); } return port; } /** * 獲取Host部分 * * @param href 網址, ftp, http, nntp, ... 等等 * @return * @throws IOException */ public static String parseHost(String href) throws IOException { // URL url = new URL(href); // 獲取 host 部分 String host = url.getHost(); return host; } /** * 根據域名(host)解析IP地址 * * @param host 域名 * @return * @throws IOException */ public static String parseIp(String host) throws IOException { // 根據域名查詢IP地址 InetAddress inetAddress = InetAddress.getByName(host); // IP 地址 String address = inetAddress.getHostAddress(); return address; } }