一、利用命令行查看埠使用情況
在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-tw/n/242993.html