如何从本地web浏览器连接到远程telnet服务器并发送预定义命令
How to connect from local web browser to remote telnet server and send predefined commands?
我有一个使用php/javascript运行的呼叫中心应用程序。当操作员在他的mac或windows或linux与web浏览器,如Firefox/Chrome/Opera/Internet explorer。我需要做一个实时连接到远程服务器发送命令,如"打call"。
但是我如何使用javascript telnet连接到远程服务器?这是可能的javascript,如果这样,如何和哪些浏览器?
感谢注意:不使用
http://matthaynes.net/blog/2008/07/17/socketbridge-flash-javascript-socket-bridge/1)http://stephengware.com/proj/javasocketbridge/
2)
后续:只有我捕获这个数据包,而使用Chrome?(Firefox/Opera/Midori/Safari,没有工作)。
# tcpdump -n -x -X -i any port 23
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
16:37:00.446070 IP 1.164.45.143.56295 > 1.164.45.143.telnet: Flags [S], seq 205310205, win 32792, options [mss 16396,sackOK,TS val 37248521 ecr 0,nop,wscale 6], length 0
0x0000: 4500 003c 96f4 4000 4006 a561 51a4 2d8f E..<..@.@..aQ.-.
0x0010: 51a4 2d8f dbe7 0017 0c3c c8fd 0000 0000 Q.-......<......
0x0020: a002 8018 fe94 0000 0204 400c 0402 080a ..........@.....
0x0030: 0238 5e09 0000 0000 0103 0306 .8^.........
16:37:00.446109 IP 1.164.45.143.telnet > 1.164.45.143.56295: Flags [R.], seq 0, ack 205310206, win 0, length 0
0x0000: 4500 0028 0000 4000 4006 3c6a 51a4 2d8f E..(..@.@.<jQ.-.
0x0010: 51a4 2d8f 0017 dbe7 0000 0000 0c3c c8fe Q.-..........<..
0x0020: 5014 0000 0031 0000 P....1..
16:37:00.446555 IP 1.164.45.143.56296 > 1.164.45.143.telnet: Flags [S], seq 196642802, win 32792, options [mss 16396,sackOK,TS val 37248521 ecr 0,nop,wscale 6], length 0
0x0000: 4500 003c d9fb 4000 4006 625a 51a4 2d8f E..<..@.@.bZQ.-.
0x0010: 51a4 2d8f dbe8 0017 0bb8 87f2 0000 0000 Q.-.............
0x0020: a002 8018 fe94 0000 0204 400c 0402 080a ..........@.....
0x0030: 0238 5e09 0000 0000 0103 0306 .8^.........
16:37:00.446581 IP 1.164.45.143.telnet > 1.164.45.143.56296: Flags [R.], seq 0, ack 196642803, win 0, length 0
0x0000: 4500 0028 0000 4000 4006 3c6a 51a4 2d8f E..(..@.@.<jQ.-.
0x0010: 51a4 2d8f 0017 dbe8 0000 0000 0bb8 87f3 Q.-.............
0x0020: 5014 0000 41bf 0000 P...A...
你能做的最好的javascript是一个AJAX请求使用XMLHttpRequest。如果您的telnet服务器可以在到达好的命令之前处理一堆垃圾命令,那么您就没有问题了。AJAX请求可以连接到telnet服务器,并使用POST机制发送纯文本命令。telnet服务器将首先收到HTTP报头,它将在POST正文中到达您的有效telnet命令之前忽略"无效命令"错误。
var xtel = new XMLHttpRequest();
// replace 123.123.123.123 with the correct IP address
xtel.open("POST", "http://123.123.123.123:23", true);
// you won't be able to get a proper response from the telnet server
xtel.onreadystatechange = function () {return true;}
xtel.send("valid command 1" + "'n" + "valid command 2" + "'n");
这将类似于…
<> telnet 123.123.123.123 23
<> GET / HTTP/1.1
<> ACCEPT: */*
<> HOST: 123.123.123.123
<>
<> valid command 1
<> valid command 2
但是,上面是一个拼凑,您最好的选择是使用php套接字http://php.net/manual/en/function.stream-socket-client.php来执行连接并发送命令。
相关文章:
- 使用JSP从服务器检索和显示图像
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 客户端服务器REST API captcha实现
- 正在将base64 jpeg从input-type=file上传到服务器
- Webpack开发服务器和React服务器端渲染
- 提示使用服务器端事件处理程序激活JavaScript
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 使用jasmine模拟对服务器的调用
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 如何使用Javascript将空数组发送到PHP服务器
- 如何在HTML中显示服务器对象变量
- 如何配置分析以将数据发送到我自己的服务器
- Node.js客户端和服务器使用Telnet进行游戏
- 如何从本地web浏览器连接到远程telnet服务器并发送预定义命令
- 在JScript中检查带有服务器IP和端口号的telnet连接
- 节点JS telnet服务器奇怪的输入和奇怪的输出