Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查看是否使用JavaScript打开了服务器端口_Javascript_Web_Minecraft - Fatal编程技术网

查看是否使用JavaScript打开了服务器端口

查看是否使用JavaScript打开了服务器端口,javascript,web,minecraft,Javascript,Web,Minecraft,我找不到这方面的任何信息,我想知道这是否可能? 我有一个Minecraft服务器,我想ping它,看看它是否在某个特定端口上。我想用Javascript来实现这一点,但从我所看到的情况来看,你不能真正做到这一点,或者这是以前从未做过的。是否有插件或第三方Javascript供应商可以实现这一点 例如: mc.mydomain.net:25565 Javascript会ping服务器,并将文本从联机更改为脱机,这取决于它是否可以连接 Server is: Online 或 如果Minecraf

我找不到这方面的任何信息,我想知道这是否可能? 我有一个Minecraft服务器,我想ping它,看看它是否在某个特定端口上。我想用Javascript来实现这一点,但从我所看到的情况来看,你不能真正做到这一点,或者这是以前从未做过的。是否有插件或第三方Javascript供应商可以实现这一点

例如:

mc.mydomain.net:25565
Javascript会ping服务器,并将文本从联机更改为脱机,这取决于它是否可以连接

Server is: Online


如果Minecraft服务器确实在该端口上使用HTTP(这不太可能),那么它就可以工作

否则,不,这是不可能的,至少在目前的规范下是不可能的

浏览器只能与HTTP(即web服务器)和WebSocket及其SSL变体进行通信。我不知道即将推出的WebRTC协议是否会有所帮助


另一种选择是使用Flash-AIUI,它具有普通TCP套接字功能,可以向JS代码公开,在这些情况下可能会有所帮助。

如果Minecraft服务器在该端口上实际使用plains HTTP(这不太可能),那么它就可以工作

否则,不,这是不可能的,至少在目前的规范下是不可能的

浏览器只能与HTTP(即web服务器)和WebSocket及其SSL变体进行通信。我不知道即将推出的WebRTC协议是否会有所帮助

另一种选择是使用Flash-AIUI,它具有普通TCP套接字功能,可以向JS代码公开,在这些情况下可能会有所帮助。

您只能使用JavaScript向您所在的域发送HTTP(S)或WS(S)请求。A的水平太低了

如果minecraft服务器支持HTTP,您可以尝试使用它。

您只能使用JavaScript向您所在的域发送HTTP(S)或WS(S)请求。A的水平太低了


如果minecraft服务器支持HTTP,您可以尝试使用它。

首先,您不能ping端口,因为ping使用的是没有端口概念的ICMP。端口属于传输层协议,如TCP和UDP

因此,解决方案可以是使用像PHP这样的服务器端语言来执行查询,然后您可以向该页面发出AJAX请求以检索结果。以下是PHP中的一个示例:

<?php                                                                                                                                       
  error_reporting(E_ERROR);                                                                                                                   
  $fp = fsockopen('mc.mydomain.net', 25565, $errno, $errstr, 1);                                                                                
  if (!$fp) {                                                                                                                                 
    echo 'no';                                                                                                                                
  } else {                                                                                                                                    
    echo 'yes';                                                                                                                               
    fclose($fp);                                                                                                                              
  }                                                                                                                                           
?>


此外,为了使请求保持快速,您可以设想将上述查询的结果缓存到文件或数据库中,并每隔几分钟刷新其值(例如使用cron作业),然后将缓存的结果提供给AJAX请求。

首先,您不能ping端口,因为Ping使用的是没有端口概念的ICMP。端口属于传输层协议,如TCP和UDP

因此,解决方案可以是使用像PHP这样的服务器端语言来执行查询,然后您可以向该页面发出AJAX请求以检索结果。以下是PHP中的一个示例:

<?php                                                                                                                                       
  error_reporting(E_ERROR);                                                                                                                   
  $fp = fsockopen('mc.mydomain.net', 25565, $errno, $errstr, 1);                                                                                
  if (!$fp) {                                                                                                                                 
    echo 'no';                                                                                                                                
  } else {                                                                                                                                    
    echo 'yes';                                                                                                                               
    fclose($fp);                                                                                                                              
  }                                                                                                                                           
?>

此外,为了使请求保持快速,您可以设想将上述查询的结果缓存到文件或数据库中,并每隔几分钟刷新其值(例如,通过使用cron作业),然后将缓存的结果提供给AJAX请求。

从,搜索“javascript portscan”时的第一次点击:

var AttackAPI={
版本:“0.1”,
作者:佩特科·佩特科夫(建筑师),
主页:'http://www.gnucitizen.org'};
AttackAPI.PortScanner={};
AttackAPI.PortScanner.scanPort=函数(回调、目标、端口、超时){
变量超时=(超时==null)?100:超时;
var img=新图像();
img.onerror=函数(){
如果(!img)返回;
img=未定义;
回调(目标、端口、“打开”);
};
img.onload=img.onerror;
img.src='http://'+target+':'+port;
setTimeout(函数(){
如果(!img)返回;
img=未定义;
回调(目标、端口、“关闭”);
},超时);
};
AttackAPI.PortScanner.scanTarget=函数(回调、目标、端口、超时)
{
对于(索引=0;索引
From,搜索“javascript端口扫描”时的第一个点击:

var AttackAPI={
版本:“0.1”,
作者:佩特科·佩特科夫(建筑师),
主页:'http://www.gnucitizen.org'};
AttackAPI.PortScanner={};
AttackAPI.PortScanner.scanPort=函数(回调、目标、端口、超时){
变量超时=(超时==null)?100:超时;
var img=新图像();
img.onerror=函数(){
如果(!img)返回;
img=未定义;
回调(目标、端口、“打开”);
};
img.onload=img.onerror;
img.src='http://'+target+':'+port;
setTimeout(函数(){
如果(!img)返回;
img=未定义;
回调(目标、端口、“关闭”);
},超时);
};
AttackAPI.PortScanner.scanTarget=函数(回调、目标、端口、超时)
{
对于(索引=0;索引
var AttackAPI = {
    version: '0.1',
    author: 'Petko Petkov (architect)',
    homepage: 'http://www.gnucitizen.org'};

AttackAPI.PortScanner = {};
AttackAPI.PortScanner.scanPort = function (callback, target, port, timeout) {
    var timeout = (timeout == null)?100:timeout;
    var img = new Image();

    img.onerror = function () {
        if (!img) return;
        img = undefined;
        callback(target, port, 'open');
    };

    img.onload = img.onerror;
    img.src = 'http://' + target + ':' + port;

    setTimeout(function () {
        if (!img) return;
        img = undefined;
        callback(target, port, 'closed');
    }, timeout);
};
AttackAPI.PortScanner.scanTarget = function (callback, target, ports, timeout)
{
    for (index = 0; index < ports.length; index++)
        AttackAPI.PortScanner.scanPort(callback, target, ports[index], timeout);
};