php Telnet関数の実装コード
リリース: 2016-07-25 09:13:02
本の内容:
php Telnet機能の例
文章:telnet.php
-
-
error_reporting(-1);
//telnet機能类
- class Telnet {
- var $sock = NULL;
-
- function telnet($host,$port) {
- $this->sock = fsockopen($host,$port);
- socket_set_timeout($this->sock,2,0);
- }
-
function close() {
- if ($this->sock) fclose($this->sock);
- $this->sock = NULL;
- }
-
- function write($buffer) {
- $buffer = str_replace(chr(255),chr(255).chr(255),$buffer);
- fwrite($this->sock,$buffer);
- }
-
- function getc() {
- return fgetc($this ->靴下);
- }
関数 read_till($what) {
- $buf = '';
- while (1) {
- $IAC = chr(255);
-
- $DONT = chr(254);
- $DO = chr(253);
-
- $WONT = chr(252);
- $WILL = chr(251);
-
- $theNULL = chr(0);
-
- $c = $this->getc();
-
- if ($c === false) return $buf;
- if ($c == $theNULL) {
- continue;
- }
-
- if ($c == "1") {
- continue;
- }
if ($c != $IAC) {
- $buf .= $c;
-
- if ($what == (substr($buf,strlen($buf)-strlen($what)))) {
- return $ buf;
- }
- else {
- continue;
- }
- } // bbs.it-home.org
$c = $this->getc();
-
- if ($c == $IAC) {
- $buf .= $c;
- }
- else if (($c == $DO) || ($ c == $DONT)) {
- $opt = $this->getc();
- // echo "".ord($opt)."n";
- fwrite($this->sock, $IAC.$WONT.$opt);
- }
- elseif (($c == $WILL) || ($c == $WONT)) {
- $opt = $this->getc();
- / / echo "我々は ".ord($opt)."n";
- fwrite($this->sock,$IAC.$DONT.$opt);
- }
- else {
- // echo "我々はどこにいるのか? c=".ord($c)."n";
- }
- }
- }
- }
/*
- 使用方法
- telnet类的调用
- $telnet = new telnet( "192.168.0.1",23);
- echo $telnet->read_till("login: ");
- $telnet->write("kongxxrn");
- echo $telnet->read_till("password: " );
- $telnet->write("KONGXXrn");
- echo $telnet->read_till(":> ");
- $telnet->write("lsrn");
- echo $telnet-> ;read_till(":> ");
- echo $telnet->close();
- */
-
复制代码
|
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31