Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用 fsockopen() 函数开放端口扫描器的实例

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

作者头像
用户8826052
修改于 2021-07-13 02:39:28
修改于 2021-07-13 02:39:28
5140
举报
文章被收录于专栏:编程乐园编程乐园

1、前言

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

2、关键技术

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

核心代码如下:

foreach ($port as $key => $value) {

echo '<tr>';

echo '<td>' . $key . '</td>';

echo '<td>' . $value . '</td>';

echo '<td>' . $msg[$key] . '&lt/

/;/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、代码如下

<!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 &lt; 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>

</html>

因为偷懒,把页面和结果都写在一起了,布局就将就把。

4、主要函数介绍

4.1、fsockopen

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

详情参考:

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用Python编写一个高效的端口扫描器
此端口扫描器的源码,文档及详细调用方法见Github PythonPortScanner by Yaokai。
py3study
2020/01/07
4.2K0
用Python编写一个高效的端口扫描器
SSRF 服务端请求伪造攻击,程序员必掌握
SSRF,Server-Side Request Forgery,服务端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统。
后端技术探索
2019/04/25
1.2K0
实战 | Python 编写端口扫描器
本篇学习笔记将记录使用 python 编写 Scan 的学习路线,记录整个 python 扫描器的编写过程,记录从第一行代码到最新版本,对每个版本更新用到的技术进行详解
HACK学习
2020/09/14
1.2K0
实战 | Python 编写端口扫描器
Python3实现TCP端口扫描器
在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤。通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞。 TCP端口扫描一般分为以下几种类型: TCP connect扫描:也称为全连接扫描,这种方式直接连接到目标端口,完成了TCP三次握手的过程,这种方式扫描结果比较准确,但速度比较慢而且可轻易被目标系统检测到。 TCP SYN扫描:也称为半开放扫描,这种方式将发送一个SYN包,启动一个TCP会话,并等待目标响应数据包。如果
用户1631416
2018/04/12
1.9K0
Python3实现TCP端口扫描器
Python开发端口扫描器
首先是最常用的端口扫描器: 虽说有nmap等强大的工具,不过如果由于条件限制无法安装Nmap呢? 我这个脚本写的比较简单,默认扫描1-65535全部的端口 实际的话,可以根据需要自己修改脚本来实现定制化扫描 # -*- coding:utf-8 -*- __author__ = "Yiqing" import socket import time import thread import optparse import re socket.setdefaulttimeout(3) def port_
py3study
2020/01/17
6680
20 行代码编写一个简单的端口扫描器
端口扫描是非常实用的,不止用在信息安全方面,日常的运维也用得到。这方面的工具也不要太多,搞过 CTF 的朋友会告诉你有多少端口扫描工具,那为什么还要用 Python 再自己实现一遍?这个问题就像饭店里的菜已经很好吃了,为什么还要自己烧菜一样,主要还是为了适合自己的口味,添加自己需要的个性功能。
somenzz
2022/05/24
3680
20 行代码编写一个简单的端口扫描器
PHP Web 木马扫描器
<?php /**************PHP Web木马扫描器************************/ /* [+] 版本: v1.0
用户1696846
2018/07/16
5.1K0
【详解】Python实现高效的端口扫描
在网络安全领域,端口扫描是一项基本而重要的技能。通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用。本文将介绍如何使用Python来实现一个高效且简单的端口扫描器。
大盘鸡拌面
2025/01/28
1460
C++ Boost 实现异步端口扫描器
端口扫描是一种用于识别目标系统上哪些网络端口处于开放、关闭或监听状态的网络活动。在计算机网络中,端口是一个虚拟的通信端点,用于在计算机之间传输数据。每个端口都关联着特定类型的网络服务或应用程序。端口扫描通常是网络管理员、安全专业人员或黑客用来评估网络安全的一种方法。通过扫描目标系统的端口,可以了解系统上哪些服务在运行、哪些端口是开放的,从而评估系统的安全性。
王瑞MVP
2023/11/22
4940
C++ Boost 实现异步端口扫描器
Java 端口扫描器 TCP的实现方法
想必很多朋友都实现过一个简易的聊天室这个功能,其中涉及到Socket套接字这个类,我们通过一个特定的IP以及特定的端口创建一个服务端的套接字(ServerSocket),以此我们聊天个体的套接字(Socket)再与其连接,从而实现连通并通过流来传递信息的聊天室功能。
Rekent
2018/09/04
2.1K0
Python | 使用Python3 实现端口扫描
因为后台更新固定链接的缘故,导致前期的原文链接点击没有反应,目前这个问题已经被解决。
TeamsSix
2019/09/24
3.7K0
Python | 使用Python3 实现端口扫描
GO语言实现的端口扫描器分享
//GO语言 实现端口扫描 //缺陷 //port 无法设置成全局变量不知道怎么设置的 //var l = list.New() 这个是数组操作并不是消息队列 跟消息队列功能类似 //实现功能 //实现生成 IP段 //实现端口扫描 //实现参数传入 //写入文件到本地 //main.go 58.215.20.30 58.215.201.30 80 //文件名 开始IP 结束IP 扫描端口 //QQ2929
李海彬
2018/03/19
2K0
[Python黑帽] 三.编程实现IP及端口扫描器、实现多线程C段扫描器
声明:本人坚决反对利用教学方法进行恶意攻击的行为,一切错误的行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解技术背后的原理,更好地进行安全防护。虽然作者是一名安全小白,但会保证每一篇文章都会很用心地撰写,希望这些基础性文章对你有所帮助,在安全路上一起前行。
Eastmount
2021/12/02
1.4K0
[Python黑帽] 三.编程实现IP及端口扫描器、实现多线程C段扫描器
工具| 手把手教你制作信息收集器之端口扫描
本期任务:使用python脚本实现端口扫描。 准备工具:选项分析器:optparse;网络库:socket 问题引入 1. 端口扫描器扫描效果如何? 答:下图是效果演示,扫的是IP地址为192
漏斗社区
2018/03/28
1.2K0
工具| 手把手教你制作信息收集器之端口扫描
PHP SOCKET编程
一直以来很少看到有多少人使用php的socket模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实php的socket模块可以做很多事情,包括做ftplist,http post提交,smtp提交,组包并进行特殊报文的交互(如smpp协议),whois查询。这些都是比较常见的查询。
黄规速
2022/04/14
1.1K0
PHP SOCKET编程
16.1 Socket 端口扫描技术
端口扫描是一种网络安全测试技术,该技术可用于确定对端主机中开放的服务,从而在渗透中实现信息搜集,其主要原理是通过发送一系列的网络请求来探测特定主机上开放的TCP/IP端口。具体来说,端口扫描程序将从指定的起始端口开始,向目标主机发送一条TCP或UDP消息(这取决于端口的协议类型)。如果目标主机正在监听该端口,则它将返回一个确认消息,这表明该端口是开放的。如果没有响应,则说明该端口是关闭的或被过滤。
王瑞MVP
2023/10/20
4200
16.1 Socket 端口扫描技术
分享几款好用的端口扫描器
最近乱七八糟的忙,没有收获但感觉还挺累的,好操蛋。趁周末介绍几款在办公网扫描的小工具,亲测效果还不错,小巧迅速,功能强大,导出的报告也是干净整洁没什么花里胡哨的的东西,缺点是没怎么隐匿自己的流量,如果碰到蜜罐肯定要栽的,但是相比nmap来讲,他们实在太快太香。
天钧
2021/01/18
22.9K2
分享几款好用的端口扫描器
浅析端口扫描原理
自觉对于端口扫描只是浅显的停留在nmap的几条命令,因此花了点时间了解了一下端口扫描器是如何运作的,并且使用python写了一个简单的端口扫描器,笔者目的不在于替代nmap等主流端扫的作用,只是为了更深入地了解端口扫描器运作的原理。
HhhM
2022/08/10
2.5K0
浅析端口扫描原理
Nmap 扫描并生成HTML报告
1.扫描并生成xml执行命令 nmap -PR -sV -oX lyshark.xml 192.168.1.0/24
王瑞MVP
2022/12/28
2.1K0
Nmap 扫描并生成HTML报告
Python 原生Socket实现端口扫描
端口扫描,就是逐个对一段端口或指定的端口进行扫描。通过扫描结果可以知道一台计算机上都提供了哪些服务,Python中使用Socket即可实现对特定端口的探测,以及对C段的扫描。
王瑞MVP
2022/12/28
4560
相关推荐
用Python编写一个高效的端口扫描器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档