回答
(我假設你在談論的TCP/IP端口)
不過是沒有這樣的東西作爲免費的端口號的列表。但是像netstat.exe
(我喜歡使用netstat /a /n /p tcp
)這樣的實用程序會給你一個使用的端口號列表。空閒端口號是所有未使用的介於1和65535之間的端口號。
如果你能使用的端口號該列表程序,你的問題就解決了。如果我真的真的硬起來,我會捕獲從netstat
輸出並解析它。
更新:
(維基百科)http://en.wikipedia.org/wiki/Netstat:
在Windows平臺上,netstat的信息,可以通過調用GetTcpTable和GetUdpTable功能IP幫助API中進行檢索,或者IPHLPAPI.DLL。返回的信息包括本地和遠程IP地址,本地和遠程端口以及(用於GetTcpTable)TCP狀態代碼。除Windows附帶的命令行netstat.exe工具外,還有可用的基於GUI的netstat程序。
還有維基百科文章中一些有用的信息。 stati返回的一個很好的解釋也在這裏:http://commandwindows.com/netstat.htm。
只有這樣,才能知道某個端口號是否是「免費」是實際嘗試bind()
它。
回想一下,端口號僅僅意味着在一個特定的接口地址的背景下東西,所以兩個程序可以在「相同」的端口號來監聽(但在不同的地址)。此外,可能有多種原因可能導致特定程序不允許在特定端口上偵聽,包括本地防火牆策略或ACL或任何其他可能的原因。
假設您想要監聽傳入連接,只需嘗試bind()
即可找到感興趣的地址和端口,並且根據應用程序是否可以偵聽該端口,您將收到錯誤或不收到錯誤。
對於單個端口(或少數幾個),這很簡單,方便且快速。要獲得免費端口列表(無論他想要什麼?)需要這樣做64K次,這在合理的時間內我看不到。 – 2009-12-15 07:57:26
的確如此。我更關注問題的後半部分,因爲第一部分似乎是回答第二部分的可能方法。 – 2009-12-15 08:15:57
- 1. 在VC++中獲取#define符號列表
- 2. ZeroRPC自動分配空閒端口號
- 3. 選擇一個空閒的端口號,但要避免1特定端口號
- 4. 如何獲取端口名稱列表?
- 5. 如何獲取rmi中客戶端的端口號?
- 6. 如何獲取數據庫中表格的空閒時間?
- 7. 如何獲取Outlook用戶列表的空閒/忙碌狀態(以及如何獲取用戶列表)?
- 8. 空閒的套接字端口。 Delphi
- 9. Ruby獲取UDPSocket端口號
- 10. 如何從端口列表中獲取用戶界面Com端口?
- 11. Glassfish:java.net.BindException:範圍內沒有空閒端口
- 12. 獲取我的VC++代碼使用的符號列表
- 13. 獲取相應的HTTPS端口號HTTP端口在Tomcat中
- 14. 在本地主機上,如何選擇一個空閒端口號?
- 15. 如何獲取python中新接受的連接的端口號?
- 16. 如何在處理請求時獲取node.js中的端口號?
- 17. 如何在android中獲取連接wifi的端口號?
- 18. 如何獲取java中的默認打印機端口號
- 19. 如何獲取Flask中的當前端口號?
- 20. 如何在postgresql中獲取ubuntu數據庫的端口號?
- 21. 如何獲取數據庫IP地址,oracle中的端口號?
- 22. 如何使用vC++獲取證書序列號
- 23. 如何在C#/ Silverlight中的UserControl類中獲取空閒消息?
- 24. 如何獲取端口上的ARP記錄mikrotik列表
- 25. 在窗口中獲取最低空閒虛擬內存地址
- 26. 如何爲子進程選擇一個空閒端口?
- 27. 如何獲得Websphere 6.1的端口號
- 28. 獲取網站的端口號
- 29. 獲取服務名稱的端口號?
- 30. 獲取端口號的Apache Tomcat
什麼樣的端口號? TCP? UDP? – 2009-12-15 06:49:27
「免費」是什麼意思?如果你的意思是檢查它是否被採用,那麼提到netstat的答案是朝着正確方向邁出的一步。如果你想確定一個端口是否被阻塞,那麼沒有特定的方法。你將不得不通過發送數據來測試你的目標端口。 – 2009-12-15 06:52:42
它的TCP ,,,,但我怎麼能預定它編號 – 2009-12-15 06:57:14