一、利用命令行查看端口使用情況
在Windows操作系統下,我們可以通過運行以下命令查看端口使用情況:
netstat -ano
該命令會列出計算機所有打開的網絡連接信息,包括本地地址、外部地址、狀態和進程ID等。我們可以將輸出結果導出為一個文本文件來更方便地查看。
在Linux系統中,我們可以使用以下命令查看端口使用情況:
netstat -tunlp
該命令會列出系統所有的TCP、UDP連接和監聽端口的詳細信息,可以通過該命令確定那些進程正在監聽哪些端口。
二、使用Java代碼查看端口使用情況
Java中可以通過InetAddress類來獲取本地主機的網絡接口信息,以及通過ServerSocket類來獲取進程監聽的端口。
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
public class PortScanner {
public static void main(String[] args) {
try {
InetAddress inetAddress = InetAddress.getLocalHost();
Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
System.out.println("本機網絡接口如下:");
while (interfaces.hasMoreElements()) {
NetworkInterface ni = interfaces.nextElement();
System.out.println(ni.getName() + ": " + ni.getDisplayName());
}
System.out.println("本機IP地址:" + inetAddress.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
}
}
}
以上代碼使用了InetAddress類和NetworkInterface類,可以獲取本地主機的所有網絡接口信息(包括名稱、IP地址等)並輸出到控制台。
如果想要查詢進程所監聽的端口,可以使用如下代碼:
import java.io.IOException;
import java.net.ServerSocket;
public class PortScanner {
public static void main(String[] args) {
for (int port = 0; port <= 65535; port++) {
try {
ServerSocket server = new ServerSocket(port);
server.close();
} catch (IOException e) {
System.out.println("Port " + port + " is already in use.");
}
}
}
}
以上代碼使用了ServerSocket類來驗證本地主機是否監聽指定端口,如果在綁定該端口時發現該端口已被佔用,則會拋出IOException異常並提示用戶該端口已被使用。
三、使用第三方工具查看端口使用情況
除了使用命令行和Java代碼查看端口使用情況之外,還可以使用一些第三方工具,如TCPView、NetstatViewer等。
TCPView是一個Windows下的實時網絡監視器,可以顯示所有正在進行的網絡連接信息。用戶可以查看每個進程需要的遠程IP地址、端口、協議及連接接收和發送的速度等信息。使用TCPView可以很方便地定位哪個程序正在使用網絡。
NetstatViewer則是基於Java開發的一款跨平台端口查看工具,可以顯示出所有網絡連接情況,包括本機地址,遠程地址,狀態,連接起止時間等多種信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/242993.html
微信掃一掃
支付寶掃一掃