2010-01-19 50 views

回答

1

有許多方法可以通過服務器端腳本實現這一點。正如@Oded提到的那樣,大多數服務器端處理程序都能夠在任意端口上啓動套接字連接,而且大多數甚至有專用的端口掃描套件/庫(PHP在PEAR存儲庫中有one,Python的'套接字'模塊使這種類型任務輕而易舉,等等......)

請記住,在共享主機平臺上,套接字連接通常因安全目的而被禁用。

另一種非常容易實現的方法是使用命令行端口掃描程序,例如服務器端腳本中的nmap。即在PHP中,你可以使用echo``nmap -p $ port $ ip \

1

服務器端腳本將嘗試打開指定端口上的連接到始發IP。

如果沒有響應(嘗試超時),則表示端口未打開。

+0

@Downvoter - care to comment? – Oded 2012-05-08 08:42:31

0

服務器可以嘗試,正如@Oded所言。但是這並不能確保接收器會響應。

0

通常情況下,這樣的事情發生了:

  • 的URL請求包含指示哪些端口的訪問。瀏覽器發送的標題包含有關請求來源的信息。

  • 在迴應請求之前,服務器會嘗試打開一個端口並檢查是否成功。在超時前等待一會兒。

  • 根據此測試的結果動態呈現網頁。

  • 將響應返回給您,其中包含結果。

有時步驟(2)和(3)將被替換爲AJAX回調,它允許響應更快地返回。