1、前言

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

2、关键技术

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

核心代码如下:

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 "color: #ff0000">3、代码如下

<!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="<">
  <button>扫描</button>
 </form>
 <table>
  <thead>
   <tr>
    <td>id</td>
    <td>端口号</td>
    <td>服务</td>
    <td>开启状态</td>
   </tr>
  </thead>
  <tbody>
   <"prettyprint lang-js"></html> 利用 fsockopen() 函数开放端口扫描器的实例
因为偷懒,把页面和结果都写在一起了,布局就将就把。

4、主要函数介绍

4.1、fsockopen

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

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

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

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

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!