扫端口的

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
前些日子,偶开始学Socket,在云舒的大力帮助之一,偶写了一个单线程单主机的端口扫描器,今天想改为扫多主机的,(线程还是单的,慢得要命,不过偶是作为学习用的,慢也没关系),可是不会改了,请大家指点我一下

/*
  Name: NetxPort
  Copyright: Netxfly
  Author: Netxfly
  Date: 12-10-04
  Description: A simple Port scanner
*/

#include <stdio.h>
#include <string.h>
#include <winsock2.h>

#pragma comment(lib,"ws2_32.lib")

void usage(char *);     //帮助函数 
void scan(char *);    //常用端口扫描 
void scan1(char *,char *, char *);    //自定义端口扫描   
void scan2(char *, char *2);   //多主机常用端口扫描   
void scan3(char *, char *, char *, char *);
//多主机自定义端口扫描   

//////////////////////////////////////////////////////////////////
//主函数
//////////////////////////////////////////////////////////////////
int main(int argc,char *argv[])
{
    if(argc==2)
    {
        scan(argv[1]);      //常用端口扫描  
    } 
    else if(argc==3)        //多主机常用端口扫描    
    {
        scan2(argv[1],argv[2]);    
    } 
    else if(argc==4)
    {
        scan1(argv[1],argv[2],argv[3]);     //自定义端口扫描    
    }   
    else if(argc==5)
    {
        scan3(argv[1],argv[2],argv[3],argv[4]);   //多主机自定义端口扫描         
    }  
    else
    {
        usage(argv[0]);
    }        
   
}   
/////////////////////////////////////////////////////////////////////////
//帮助函数  void usage(char *help)
/////////////////////////////////////////////////////////////////////////

void usage(char *help)
{
 printf("====================================================================/n");
 printf("NetxPort Version 1.0 by Netxfly  12-10-2004 /n");
 printf("Welcome to visit
http://netxfly.126.com/n");
 printf("Usage:/n");
 printf("%s <target>/t/t/t/t常用端口扫描/n",help);
 printf("%s <target> <port1> <port2>/t/t自定义端口扫描/n",help);
 printf("%s <target1> <target2>/t/t/t多主机常用端口扫描/n",help);
 printf("%s <target1> <target2> <port1> <port2>/t多主机自定义端口扫描/n",help);
 printf("====================================================================/n");
 return ;
}
////////////////////////////////////////////////////////////////////////////
//常用端口扫描  void scan(char *target)
////////////////////////////////////////////////////////////////////////////
void scan(char *target)
{
    WSADATA         wsadata;
    SOCKET          netxfly;
    int             i;
    struct sockaddr_in server;
    int ports[12] = {21,23,25,53,80,110,135,139,445,1433,3306,3389};
    if(WSAStartup(MAKEWORD(2,2),&wsadata)!=0)
        {
                printf("Startup Winsock Failed.../n");
                exit(-1);
        }
    for(i=0;i<12;i++)
    {
        if((netxfly = socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET)
        {
                printf("Create Socket Err.../r/n");
                exit(-1);
        }

        server.sin_family=AF_INET;
        server.sin_addr.s_addr=inet_addr(target);
        server.sin_port = htons(ports[i]);
        if(connect(netxfly,(struct sockaddr*)&server,sizeof(server)) != SOCKET_ERROR)
        {
            printf("port %d is open at Host:%s/r/n",ports[i],target);
            closesocket(netxfly);
        } 
        else
        {
            closesocket(netxfly);
        }
    }   
   WSACleanup(); 
}
////////////////////////////////////////////////////////////////////////////
//自定义端口扫描    void scan1(char *target,char *start, char *end)
////////////////////////////////////////////////////////////////////////////  

void scan1(char *target,char *start, char *end)
{
    WSADATA         wsadata;
    SOCKET          netxfly;
    int             i;
    int             port1;
    int             port2;
    struct sockaddr_in server;
    if(WSAStartup(MAKEWORD(2,2),&wsadata)!=0)
        {
                printf("Startup Winsock Failed.../n");
                exit(-1);
        }
    port1=atoi(start);
    port2=atoi(end);   
    for(i=port1;i<=port2;i++)
    {
        if((netxfly = socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET)
        {
                printf("Create Socket Err.../r/n");
                exit(-1);
        }

        server.sin_family=AF_INET;
        server.sin_addr.s_addr=inet_addr(target);
        server.sin_port = htons(i);
        if(connect(netxfly,(struct sockaddr*)&server,sizeof(server)) != SOCKET_ERROR)
        {
            printf("port %d is open at Host:%s/r/n",i,target);
            closesocket(netxfly);
        } 
        else
        {
            closesocket(netxfly);
        }
    }    
WSACleanup();
}  

///////////////////////////////////////////////////////////////////////////
//多主机常用端口扫描     void scan2(char *target1, char *target2)
///////////////////////////////////////////////////////////////////////////
void scan2(char *target1, char *target2)
{
   
    unsigned long             i;
    unsigned long             start1;
    unsigned long             start2;
    char                      *target;
    start1=ntohl(inet_addr(target1));       //Ascll->Network->Host
    start2=ntohl(inet_addr(target2));       //Ascll->Network->Host
    for(i=start1;i<=start2;i++)
    {
        target=inet_ntoa(htonl(i));         //host->network->Ascii       
    //由主机顺序->网络顺序->字符点格式,让scan()调用
        scan(target);
    }   
}

////////////////////////////////////////////////////////////////////////////
//多主机自定义端口扫描  
//void scan3(char *target, char *target2, char *start, char *end)
///////////////////////////////////////////////////////////////////////////

void scan3(char *target, char *target2, char *start, char *end)
{
   



在我在Blog中可以更好看清楚代码
http://www.blogbus.com/blogbus/blog...?diaryid=536479
PS:我是在网吧写的,没有VC,用的是dev c++和Lcc
两步修改青龙面板修改端口,防止被 修改青龙面板端口,防止被 阅读详情

相关推荐

Go实现的TCP端口面器

源码地址: https://github.com/jeffcail/tcp-scanner。使用Go实现的TCP端口描器。

太阳上的雨天 828

老赛棍版端口别人没到的资产

本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。看了下Goby默认的端口模式总不太全,咨询社群里小姐姐说可以填 1-65535 端口,但实际使用中,整段的端口,效率特别低,不太现实。两轮描之后,导出资产url,扔VPS上用其他描器再跑一遍(避免与本地同IP,影响手工测试),本地一边手工看,一边等结果就行。以上端口主要针对Web资产,去掉了445,3389等传统”必端口,外部打点这些端口没有多大意义,不如精简掉。

2401_84488651的博客 1024

python端口

利用TCP连接创建一个socket描port 上代码: #TCP import socket from threading import Thread def get_port(open_port,host,ports): while True: if ports: port = ports.pop(0) ...

weixin_30593443的博客 111

Nmap!黑客红客,都用过这个工具端口

Nmap(网络映射器)是全球领先的Linux系统网络安全描工具,可帮助识别开放端口并预防潜在的网络安全威胁。Nmap 是一款必不可少的网络描工具,因为它具有准确、易于使用、界面灵活且具有许多高级功能。本指南介绍如何使用 Nmap 描 Linux 系统上的开放端口。1如何使用Nmap检查端口Nmap 是一款多功能命令行工具,可执行强大的端口描。目标可以是域名或IP 地址。不带任何选项的命令会描最常见的 1000 个端口。Nmap 可以描目标上的单个端口端口范围或所有端口

bigbangbangbang1的博客 2715

黑客红客,都用过这个工具端口

Nmap(网络映射器)是全球领先的Linux系统网络安全描工具,可帮助识别开放端口并预防潜在的网络安全威胁。Nmap 是一款必不可少的网络描工具,因为它具有准确、易于使用、界面灵活且具有许多高级功能。本指南介绍如何使用 Nmap 描 Linux 系统上的开放端口。如何使用 Nmap 检查端口Nmap 是一款多功能命令行工具,可执行强大的端口描。要进行简单描,请使用nmap 命令(不带任何...

关注微信公众号【开源Linux】,后台回复『10T』,领取10T学习资源大放送,涵盖Linux、虚拟化、容器、云计算、网络、Python、Go等书籍和视频 136

抓包之 135 端口抓包

135 端口抓坤 首先先用端口描器一段 IP 的 135 端口,然后把结果保存,再用 NTSCAN 过滤有弱口 令的机器,最后用 recton 开 telnet 传马。因为现在 135 和 445 端口都被防火墙屏蔽了, 只能本地的 135坤,要抓外地的只能用外地的 135 坤来。(详细动画 可以去黑客网站搜索 135)

IDyyj的博客 223

nessus全端口禁ping_135端口入侵思路

135端口主要用于使用RPC ( Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用IDCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多科网络传输,同时这个端口也爆出过不少的漏洞,最严重的就是缓冲区溢出漏洞,曾经疯狂一时的“冲击波”病毒就是利用这个漏洞...

weixin_28909745的博客 895

NMAP描个人电脑不到端口分析

nmap描不到端口原因分析

weixin_63137680的博客 3379

python nmap模块端口

操作系统:centos7.4 官网地址: https://pypi.org/project/python-nmap/ 一、安装 #首先安装nmap包 $ yum -y install nmap #安装模块 $ pip install python-nmap 备注: 此处安装的是 python-nmap 模块,不是 nmap 模块 如果安装了 nmap 模块,在实例化对象 [“nmap.Por...

******* ▄︻┻┳═一 ******* 3278

青龙修改端口,防被(不用重装青龙)

1.停止容器 docker stop 容器名 或在宝塔面板停止容器 2.按照下方路径打开 /var/lib/docker/containers/ 3.运行 docker ps -a 上图最左侧的id与最右侧的name对应,可以分辨第二步的哪个文件夹属于哪个容器。 4.进入对应容器文件夹,打开hostconfig.json文件 修改青龙端口 5.服务器放行新端口(安装宝塔的用户,宝塔也要放行新端口) 6. 重启容器 新端口更换完成 docker restart 你的容器名 ...

Dreamer_MI的博客 4035

linux批量端口,telnet批量检测端口状态(linux)

批量检测端口通信:准备文件树状图telnet.sh 脚本内容如下:文件说明telnet_alive.txt : 活动的端口telnet_die.txt : 离线的端口telnet_result.txt : 活动端口返回信息telnet_info.txt : 要查询的iP端口地址telnet.sh : telnet 查询IP的脚本telnet.sh 的详...

weixin_35241413的博客 708

服务端口shell

#set -x var_start=8000 array=() index=0 while [ 1 ] do array=$(curl -s "http://*.*.*.*:8080/disk_info/storeunit_ip") for ip in ${array[@]} do result=...

Get my world,break free! 291

nessus全端口禁ping_【描工具】Nessus使用进阶

1、禁止只对存活主机进行描新建任务时候在Host Discovery可配置2、设置端口描范围新建任务时候在Port Scanning选项可配置3、报告显示所以主机描情况(默认不会显示ping不通或者无法访问主机)新建任务时候在REPORT选择设置4、新建描策略,有描策略之后就不用每次都配置描选项。我这按前面3配置,新建了一条全端口禁ping描的策略之后描新建描时候选择 ...

weixin_29485605的博客 6377

SSH登录方式及如何防止SSH端口

ssh登录服务器的方式有三种:密码登录,公钥登录,证书登录。同时,密码登录有被破解的风险,网络上也有很多在描ssh端口的主机。 比如: 这里175.178.62.36是一个来自广东的服务器,17次尝试密码登录我的服务器,好在都失败了。 针对这种行为我们可以使用公钥登录的方式保护服务器。 密码登录 这是最基本的一种登录方式,当我们使用 ssh 用户名@ip时,命令会引导我们正确输入密码并且登录服...

越努力越幸运 285

linux描目标主机开放端口_码linux开放端口

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

m0_61549984的博客 476

python题软件_python 实现端口描工具

# 简单的端口描工具# 作者: Charles# 公众号: Charles的皮卡丘import timeimport socketimport threading# 判断是否为正确的IP地址。def isIP(ip):ip_addr = ip.split('.')if len(ip_addr) != 4:return Falsefor ipnum in ip_addr:if not (0 &lt...

weixin_39640203的博客 99

Python asyncio 高并发全IP(IPV6 IPV4)端口描器(支持断点续 + 进度条)

本文介绍了一个基于asyncio的高并发端口描脚本,具有以下特点:1)批量读取IP列表描1-65535全端口;2)采用asyncio实现高并发描(默认500并发);3)支持实时进度显示和断点续功能;4)结果自动保存为CSV文件。脚本通过异步I/O和队列机制实现高效描,并利用tqdm显示进度条,描进度会定期保存到文件,中断后可恢复描。运行时会生成包含IP、端口和状态的CSV结果文件,适用于需要快速、可靠的大规模端口描场景。

bqnagus 390

服务器开放端口

yum install nmap nmap -sS -p 0-1000 XXX.XXX.XXX.XXX

samRsa 53
上一篇: 物理隔离网闸常见技术问题解答
下一篇: 如何"隐藏"服务器程序的端口
amh
amh
博客等级 码龄22年 63粉丝 307原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值