gpt4 book ai didi

利用 fsockopen() 函数开放端口扫描器的实例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章利用 fsockopen() 函数开放端口扫描器的实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、前言 。

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

2、关键技术 。

本实例的端口号是固定的,通过对数组的遍历,利用 fsockopen() 函数连接,如果连接成功,则该端口处于开放状态,否则该端口处于关闭状态.

核心代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
foreach ( $port as $key => $value ) {
  echo '<tr>' ;
  echo '<td>' . $key . '</td>' ;
  echo '<td>' . $value . '</td>' ;
  echo '<td>' . $msg [ $key ] . '</td>' ;
  //$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时
  $fp = @ fsockopen ( $ip , $value , $errno , $errstr , 1); //如果主机(hostname)不可访问,将会抛出一个警告级别(e_warning)的错误提示。所有需要加@
  $result = $fp ? '<span >开启</span>' : '<span >关闭</span>' ;
  echo '<td>' . $result . '</td>' ;
  echo '</tr>' ;
}

3、代码如下 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!doctype html>
<html lang= "en" >
<head>
  <meta charset= "utf-8" >
  <title>端口扫描</title>
  <style type= "text/css" >
   td{
    padding:10px;
    border-bottom:1px solid #eee;
   }
  </style>
</head>
<body>
  <form method= "post" action= '#' >
   网址/ip:<input type= "text" name= "ip" value= "<?php echo $_post['ip'] ?? '127.0.0.1'?>" >
   <button>扫描</button>
  </form>
  <table>
   <thead>
    <tr>
     <td>id</td>
     <td>端口号</td>
     <td>服务</td>
     <td>开启状态</td>
    </tr>
   </thead>
   <tbody>
    <?php
     $ip = $_post [ 'ip' ] ?? '127.0.0.1' ;
     if ( ip2long ( $ip )){
      $aip = explode ( '.' , $ip ); //ip4地址使用.分隔符
      //这里没有对 0.0.0.0 这种本机地址进行判断,只是粗略的判断ip是否合法
      foreach ( $aip as $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' ,
      'location service' ,
      'netbios-ns' ,
      'netbios-dgm' ,
      'netbios-ssn' ,
      'imap' ,
      'https' ,
      'microsoft-ds' ,
      'mssql' ,
      'mysql' ,
      'terminal services'
     );
     //无论使用prot还是msg循环都是可以的,因为$key是对应的,都是索引数组
     foreach ( $port as $key => $value ) {
      echo '<tr>' ;
      echo '<td>' . $key . '</td>' ;
      echo '<td>' . $value . '</td>' ;
      echo '<td>' . $msg [ $key ] . '</td>' ;
      //$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时
      $fp = @ fsockopen ( $ip , $value , $errno , $errstr , 1); //如果主机(hostname)不可访问,将会抛出一个警告级别(e_warning)的错误提示。所有需要加@
      $result = $fp ? '<span >开启</span>' : '<span >关闭</span>' ;
      echo '<td>' . $result . '</td>' ;
      echo '</tr>' ;
     }
 
    ?>
   </tbody>
  </table>
</body>
</html>
?
1
</html> <img php" id="highlighter_532620">
?
1
因为偷懒,把页面和结果都写在一起了,布局就将就把。

4、主要函数介绍 。

4.1、fsockopen 。

根据一个主机名来创建一个连接,成功返回一个资源对象,失败返回false;主机不可用是抛出一个警告 。

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

利用 fsockopen() 函数开放端口扫描器的实例

以上这篇利用 fsockopen() 函数开放端口扫描器的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:http://www.cnblogs.com/ImCehnyx/archive/2017/08/18/7392605.html 。

  • 开放
  • fsockopen
  • 端口扫描器
  • 延伸 · 阅读

    • 2021-05-20php利用fsockopen GET/POST提交表单及上传文件
    • 2021-04-23Java网络编程实现的简单端口扫描器示例
    • 2021-04-06php异步:在php中使用fsockopen curl实现类似异步处理
    • 2021-04-06浅谈php中curl、fsockopen的应用
    • 2021-03-03php源码 fsockopen获取网页内容实例详解
    • 2021-01-16php自动提交表单的方法(基于fsockopen与curl)
    精彩推荐
    • PHP教程PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)

      PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)

      本文通过两种方法解决PHP中file_get_contents函数抓取https地址出错,需要的朋友可以参考下... 。

      PHP之家 215 2020-11-19
    • PHP教程php将从数据库中获得的数据转换成json格式并输出的方法

      php将从数据库中获得的数据转换成json格式并输出的方法

      今天小编就为大家分享一篇php将从数据库中获得的数据转换成json格式并输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧... 。

      潇遥快乐 384 2019-09-10
    • PHP教程php脚本守护进程原理与实现方法详解

      php脚本守护进程原理与实现方法详解

      这篇文章主要介绍了php脚本守护进程原理与实现方法,较为详细的分析了php脚本守护进程的实现思路、原理、格式及具体实现方法,需要的朋友可以参考下... 。

      3wlog 887 2021-06-06
    • PHP教程php定时计划任务与fsockopen持续进程实例

      php定时计划任务与fsockopen持续进程实例

      本文介绍了php中定时计划任务的实现代码,以及php持续进程fsockopen的用法,需要的朋友可以参考下... 。

      php教程网 340 2020-06-30
    • PHP教程PHP等比例压缩图片的实例代码

      PHP等比例压缩图片的实例代码

      本文通过一段简单的代码给大家介绍PHP等比例压缩图片的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧... 。

      kaykay012 477 2019-09-18
    • PHP教程php学习之变量的使用

      php学习之变量的使用

      php变量的使用,学习php的朋友可以参考下。... 。

      PHP教程网 468 2019-11-26
    • PHP教程PHPThumb图片处理实例

      PHPThumb图片处理实例

      这篇文章主要介绍了PHPThumb图片处理实例,例如生成缩略图、图片尺寸调整、图片截取、图片加水印、图片旋转等,需要的朋友可以参考下... 。

      PHP开发网 417 2020-06-27
    • PHP教程PHP获取youku视频真实flv文件地址的方法

      PHP获取youku视频真实flv文件地址的方法

      这篇文章主要介绍了PHP获取youku视频真实flv文件地址的方法,可实现针对youku视频真实地址的解析功能,非常具有实用价值,需要的朋友可以参考下... 。

      PHP教程网 316 2020-08-24

    最后此篇关于利用 fsockopen() 函数开放端口扫描器的实例的文章就讲到这里了,如果你想了解更多关于利用 fsockopen() 函数开放端口扫描器的实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com