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;
}
}
Java实现根据网址,解析端口号、ip、host
最新推荐文章于 2023-03-09 10:32:08 发布