手机版

使用fsockopen()函数打开端口扫描仪的示例

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

1.前言

本文利用fsockopen()函数编写了一个功能简单的端口扫描器。

2.关键技术

在本例中,端口号是固定的。通过遍历数组,使用fsockopen()函数进行连接。如果连接成功,端口打开,否则端口关闭。

核心代码如下:

foreach($ port as $ key=$ value){ echo ' tr ';回声' td '。$key。/TD ';回声' td '。$值。/TD ';回声' td '。$msg[$key]。/TD ';//$errno和$errstr在这里基本不用,只是用来设置超时和防止请求超时。$ FP=@ fsockpen ($ IP,$ value,$ errno,$ errstr,1);//如果主机(主机名)不可访问,将抛出警告级别为(E_WARNING)的错误消息。都需要加上@ $result=$fp?跨度打开/跨度“:”跨度关闭/跨度;回声' td '。$result。/TD ';echo '/tr ';}3.代码如下

!doctype html lang=' en ' head metacarset=' utf-8 ' title port scanning/title style type=' text/CSS ' TD { padding :10 px;border-bottom:1px实心# eee}/style/head body form方法=' post' action=' # '网站地址/IP:输入类型=' text' name=' IP' value='?php echo $_POST['ip']? '127.0.0.1'?'按钮扫描/按钮/表单表TD/td td端口号/TD TD TD服务/TD TD打开状态/TD/tr/TD body?php $ip=$_POST['ip']?'127.0.0.1';if(ip2long($ip)){ $aIp=explode(' . ',$ IP);//ip4地址使用。分离器。//对0.0.0.0的本地地址没有判断,只是粗略判断ip是否合法foreach($ ai pas $ key=$ value){ if($ value 0 | | $ value 255){ die('地址非法');} } } $port=array(21,23,25,79,80,110,135,137,138,139,143,443,445,1433,3306,$msg=array('Ftp ',' Telnet ',' Smtp ',' Finger ',' Http ',' Pop3 ','位置服务',' Netbios-NS ',' Netbios-DGM ',' Netbios-SSN ',' IMAP ',' Https ',' Microsoft-DS ',' MSSQL ',' MYSQL ','终端服务');//使用prot或msg循环是可以的,因为$key是对应的,也就是foreach的索引数组($ port as $ key=$ value){ echo ' tr ';回声' td '。$key。/TD ';回声' td '。$值。/TD ';回声' td '。$msg[$key]。/TD ';//$errno和$errstr在这里基本不用,只是用来设置超时和防止请求超时。$ FP=@ fsockpen ($ IP,$ value,$ errno,$ errstr,1);//如果主机(主机名)不可访问,将抛出警告级别为(E_WARNING)的错误消息。都需要加上@ $result=$fp?跨度打开/跨度“:”跨度关闭/跨度;回声' td '。$result。/TD ';echo '/tr ';} ?/t body/table/body/html/html

因为懒惰,页面和结果写在一起,布局会很容易。4.主要功能介绍

4.1、fsockopen

根据主机名创建连接,成功返回资源对象,失败返回false;主机不可用会引发警告

详情请参考http://php.net/manual/en/function.fsockopen.php

上面使用fsockopen()函数打开端口扫描器的例子是边肖分享的所有内容。希望能给大家一个参考,支持我们。

版权声明:使用fsockopen()函数打开端口扫描仪的示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐