失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php执行telnet 无法使用PHP shell_exec()执行telnet命令

php执行telnet 无法使用PHP shell_exec()执行telnet命令

时间:2022-05-12 23:38:55

相关推荐

php执行telnet 无法使用PHP shell_exec()执行telnet命令

我正在尝试使用telnet和php进行邮件验证.整个过程在终端中说得很好,但是当我使用php shell_exec()时,它只运行到Telnet连接命令.连接telnet后,剩余的特定于telnet的命令将不再起作用.

有没有其他方法,我们需要使用PHP执行telnet?

更新:我正在尝试复制this教程.

这是我的代码

public function mailtest(Request $request){

//Taking input email

$email = $request->input("email");

$divide = explode("@", $email);

//Find out the Domain

$server = $divide[1];

$response = shell_exec("nslookup -q=mx $server");

//Response of the nslookup

print_r($response);

$mailServerList = explode(PHP_EOL, $response);

$line = $mailServerList[4];

$serverArr = preg_split('/\s+/', $line);

$n = sizeof($serverArr);

$mailServer = $serverArr[$n-1];

//Printing out the mail server out of the nslookup response

print_r($mailServer);

//Executing Telnet command

$telnet = shell_exec("telnet $mailServer 25");

print_r("telnet response ".$telnet);

//Telnet Helo

$helo = shell_exec("Helo ");

print_r("Helo response ".$helo);

//Telnet mail from

$from = shell_exec('mail from: testing@');

print_r("MAil from response ".$from);

//Telnet RCPT to

$finalResponse = shell_exec("rcpt to: $email");

print_r("Mail to response ".$finalResponse);

}

这是回应

Server: 10.0.80.11

Address: 10.0.80.11#53

Non-authoritative answer:

mail exchanger = 5 gmail-smtp-in..

mail exchanger = 10 alt1.gmail-smtp-in..

mail exchanger = 40 alt4.gmail-smtp-in..

mail exchanger = 30 alt3.gmail-smtp-in..

mail exchanger = 20 alt2.gmail-smtp-in..

Authoritative answers can be found from:

gmail-smtp-in. internet address = 173.194.64.27

gmail-smtp-in. has AAAA address 2607:f8b0:4003:c02::1a

alt1.gmail-smtp-in. internet address = 173.194.219.27

alt1.gmail-smtp-in. has AAAA address 2607:f8b0:4002:c03::1b

alt4.gmail-smtp-in. internet address = 64.233.190.26

alt4.gmail-smtp-in. has AAAA address 2800:3f0:4003:c01::1b

alt3.gmail-smtp-in. internet address = 74.125.141.26

alt3.gmail-smtp-in. has AAAA address 2607:f8b0:400c:c06::1a

alt2.gmail-smtp-in. internet address = 173.194.205.27

alt2.gmail-smtp-in. has AAAA address 2607:f8b0:400d:c02::1b

gmail-smtp-in..telnet response Trying 2607:f8b0:4003:c02::1a...

Connected to gmail-smtp-in..

Escape character is '^]'.

Helo response

MAil from response No message, no subject; hope that's ok

Mail to response

解决方法:

shell_exec不适合(参见Ulrich的解释).

fsockopen应该做的伎俩.

$fp = @fsockopen('', 9001);

if ($fp) {

fwrite($fp, "username\n");

fwrite($fp, "password\n");

while ($line = fread($fp, 2048)) {

// do things with $line

}

} else {

//return error

}

标签:php,email-validation,networking,telnet,shell-exec

来源: https://codeday.me/bug/0528/1168430.html

如果觉得《php执行telnet 无法使用PHP shell_exec()执行telnet命令》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。