一、簡介
使用的是java自帶的Socket類進行檢測端口號是否可用,兩個代碼,一個是檢測的工具類,另一個是調用工具類傳遞相關的的參數;
請求的結果:(當前Ip可用,端口號不可用)
二、檢測用的工具類
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
public class Iputils {
private static final Logger logger = LogManager.getLogger(WordSmsController.class);
/** * 檢測Ip和端口是否可用 * * @param ip * @param port * @return */
public static boolean checkIpPort(String ip, int port) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(ip,port),3000);
logger.info("地址和端口號可用");
return true;
} catch (Exception e) {
logger.info("地址和端口號不可用");
return false;
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
}
}
}
}
/** * 檢測Ip地址 * * @param ip * @return */
public static boolean checkIp(String ip){
try {
InetAddress.getByName(ip).isReachable(3000);
logger.info("Ip可以使用");
return true;
} catch (IOException e) {
logger.info("Ip不可用");
return false;
}
}
}
三、測試類
// 查看端口號是否可用
String ip = "106.12.58.180";
int port = 80;
Iputils iputils = new Iputils();
// 檢測Ip是否可用
boolean resultIp = iputils.checkIp(ip);
System.out.print("檢測的Ip結果為:");
System.out.println(resultIp);
// 檢測Ip和端口號是否可用
boolean resultIpPort = iputils.checkIpPort(ip, port);
System.out.print("檢測的Ip和端口結果為:");
System.out.println(resultIpPort);