是否可以在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. 如何检查客户端的NLS_LANG?
- 4. 如何检查端口是否可用
- 5. 客户端兼容性检查管理
- 6. 如何检查ASP.Net中客户端(JavaScript)的Page.Validate()?
- 7. 如何指定iperf客户端端口
- 8. 检查客户端端口是开放的,并转发[C#,ASP.NET]
- 9. 当客户端可以使用Javascript时客户端WCF服务的安全性客户端
- 10. 如何检查ClearCase客户端服务器中的用户组
- 11. WCF - 客户端检查服务可用性
- 12. SocketPermission - 客户端端口?
- 13. 客户端如何查找服务器的端口号?
- 14. 如何检查回调的wcf服务客户端的可用性?
- 15. 如何检查端口是否在客户端电脑上打开?
- 16. JavaScript中的客户端服务器端
- 17. 可可中的客户端到客户端的消息传递?
- 18. JavaScript中的TCP客户端
- 19. Javascript中的XMLRPC客户端
- 20. 检测客户端的JavaScript崩溃
- 21. 如何使用Javascript识别客户端?
- 22. 如何在客户端启用javascript?
- 23. 如何获取rmi中客户端的端口号?
- 24. 如何获取RequestHandler中的客户端端口?
- 25. 检查C#中的COM端口可用性#
- 26. 检查WiX中的TCP端口可用性
- 27. C#配置TCPClient客户端的端口
- 28. 在nsis中使用iphlpapi dll检查端口可用性
- 29. javascript mysql客户端
- 30. Javascript客户端ORM
什么样的Javascript?在浏览器中?在服务器上?什么样的端口?聆听或连接?本地或远程? – Thilo 2012-03-27 07:17:49
我想在浏览器中检测到它。例如端口843. – 2012-03-27 07:19:29
我有一个Flash策略服务器,但如果端口843不可用,那么我不想加载Flash小程序。 – 2012-03-27 07:33:57