是否可以在JavaScript中(在瀏覽器中)檢測端口是否被防火牆或路由器禁用?如何檢查客戶端JavaScript中的端口可用性?
回答
您只能看到預期響應是否存在。
使用javascript時,必須保持HTTP的邊界。
當然,您可以在服務器的任何端口上發送Ajax請求,並查看是否出現錯誤。如果你想檢查當前機器的端口,那麼可能在「localhost:843」上發送請求可能會有所幫助。
但錯誤可能是其他原因,並不一定是防火牆問題。
我們需要更多的信息來幫助你。
我有一個Flash策略服務器,但如果端口843不可用,那麼我不想加載Flash小程序。 – 2012-03-27 07:34:41
不,用純javascript這是不可能的(除了向特定端口發出http請求,但這些結果意味着什麼),然而你可以做的是從外部(換句話說你的服務器)檢查是否特定的端口是打開的。另一種選擇是使用java applet或瀏覽器插件,如果你真的需要它,真的需要它,在這種情況下,你可能會使用各種開源工具,如果你有必要的經驗的話。但請注意,這不完全是用戶友好的。 (無論哪種方式,如果你需要描述確切的場景,你可能需要使用它,因爲這可能會有一個完全不同的解決方案)。
我有一個Flash策略服務器,但如果端口843不可用,那麼我不想加載Flash小程序。 – 2012-03-27 07:56:42
在這種情況下,我會建議您加載Flash小程序,並在頁面無法正常工作時進行回調,然後向用戶提供反饋(在這種情況下,它是關於Flash功能的,而不是JavaScript,可能)(我不知道閃光燈是什麼,不可能閃光燈)。 – 2012-03-27 08:13:42
如果您足夠靈活地使用jQuery,請參閱此Answer by me。這不僅將檢查端口的可用性,而且還將檢查成功響應代碼200是否來自遠程(或任何,我的意思是它也支持跨域)服務器。此處也提供解決方案。我將在這裏檢查端口843.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="jquery-1.7.2-min.js"></script>
</head>
<body>
<script type"text/javascript">
var isAccessible = null;
function checkConnection() {
/*make sure you host a helloWorld HTML page in the following URL, so that requests are succeeded with 200 status code*/
var url = "http://yourserverIP:843/test/hello.html" ;
$.ajax({
url: url,
type: "get",
cache: false,
dataType: 'jsonp', // it is for supporting crossdomain
crossDomain : true,
asynchronous : false,
jsonpCallback: 'deadCode',
timeout : 1500, // set a timeout in milliseconds
complete : function(xhr, responseText, thrownError) {
if(xhr.status == "200") {
isAccessible = true;
success(); // yes response came, execute success()
}
else {
isAccessible = false;
failure(); // this will be executed after the request gets timed out due to blockage of ports/connections/IPs
}
}
});
}
$(document).ready(function() {
checkConnection(); // here I invoke the checking function
});
</script>
</body>
</html>
這提示我看看這個方法是否會應用於我在試圖ping一個端口時可能沒有監聽器的問題。問題是,當沒有監聽者時,即使在try/catch中包裝xhr請求時,Chrome也總是記錄錯誤。不是一個殺手,但仍然很醜。通過刪除成功和錯誤塊並處理完整塊中的響應,就像在這裏所做的那樣,我們避免了控制檯消息!我仍然可以通過異步調用來做到這一點。感謝代碼。 – likestoski 2014-01-30 15:34:50
- 1. Silverlight客戶端端口檢查
- 2. 服務器如何檢查客戶端的可用性?
- 3. iOS/Objective-C中的TCP客戶端 - 檢查打開端口
- 4. 如何檢查客戶端是否可以通過端口843連接?
- 5. 如何檢查Parse用戶是否從客戶端JavaScript登錄?
- 6. 如何檢查客戶端的NLS_LANG?
- 7. 如何檢查端口是否可用
- 8. 客戶端兼容性檢查管理
- 9. 如何檢查ASP.Net中客戶端(JavaScript)的Page.Validate()?
- 10. 如何指定iperf客戶端端口
- 11. 檢查客戶端端口是開放的,並轉發[C#,ASP.NET]
- 12. 當客戶端可以使用Javascript時客戶端WCF服務的安全性客戶端
- 13. 如何檢查客戶端Java版本?
- 14. 檢查客戶端文件
- 15. 如何檢查ClearCase客戶端服務器中的用戶組
- 16. WCF - 客戶端檢查服務可用性
- 17. SSH客戶端端口
- 18. OpenJMS - 客戶端端口號
- 19. SocketPermission - 客戶端端口?
- 20. 客戶端如何查找服務器的端口號?
- 21. 如何檢查回調的wcf服務客戶端的可用性?
- 22. C中的UDP客戶端源端口?
- 23. 查找客戶端中使用的端口號
- 24. 如何檢查webgl的客戶端性能(three.js)
- 25. 在彈性客戶端客戶端中使用帶helpers.scan的filter_path
- 26. 如何檢查端口是否在客戶端電腦上打開?
- 27. 可可中的客戶端到客戶端的消息傳遞?
- 28. JavaScript中的客戶端服務器端
- 29. 用於檢查Windows中端口可用性的VBS腳本
- 30. javascript客戶端中的ZeroMQ
什麼樣的Javascript?在瀏覽器中?在服務器上?什麼樣的端口?聆聽或連接?本地或遠程? – Thilo 2012-03-27 07:17:49
我想在瀏覽器中檢測到它。例如端口843. – 2012-03-27 07:19:29
我有一個Flash策略服務器,但如果端口843不可用,那麼我不想加載Flash小程序。 – 2012-03-27 07:33:57