UNIX环境编程学习笔记------编程实例----扫描一个网段的端口
来源:互联网 发布:mysql 查看事件 编辑:程序博客网 时间:2024/04/28 22:45
#include<unstd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<errno.h>
#include<stdio.h>
int main()
{
//定义循环变量
int I,j;
//定义一个套接字描述符
int sfd;
//定义一个套接字地址
struct sockaddr_in S_sockadd;
//定义一个ip地址
struct in_addr s_ip;
u_long ip;
char p[16];
//定义一个端口号
int port;
//我打算在这里面开辟两个大循环
/*主循环是ip地址
次循环是端口号
*/
//给定初始ip地址
p[16]="192.168.60.1";
inet_pton(AF_INET,p,&s_ip);
//初始端口号
port =1;
//把端口号转为网络字节序
//初始化套接字
S_sockadd->sin.family =AF_INET;
S_sockadd->sin.port=htons(port);
S_sockadd->sin_addr=s_ip;
//创建一个socket
sfd=socket(AF_INET,SOCK_STREAM,0);
if(sfd==-1)
{
perror(socket error);
_exit(1);
}
else
{
for( I=1;I<=509;I++)
{
for(;port<=65535;port++)
{
//调用connect进行连接
int cr=connect (sfd,(struct sockaddr *)&S_sockadd,sizeof(S_sockadd));
if(cr!=-1)
{
printf("the host is open and :");
inet_ntop(AF_INET,&S_sockadd.sin_addr),&p,sizeof(S_sockadd.sin_addr);
printf("ip is : %s",p);
printf("port :%d",port);
printf("open \n");
}
printf("\n\n");
}
//当端口加1之后,IP地址要自动加1
ip=htonl(S_sockadd.sin_addr);
ip++;
s_ip=ntohl(ip);
S_sockadd.sin_addr=s_ip;
}
}
return 0;
}
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<errno.h>
#include<stdio.h>
int main()
{
//定义循环变量
int I,j;
//定义一个套接字描述符
int sfd;
//定义一个套接字地址
struct sockaddr_in S_sockadd;
//定义一个ip地址
struct in_addr s_ip;
u_long ip;
char p[16];
//定义一个端口号
int port;
//我打算在这里面开辟两个大循环
/*主循环是ip地址
次循环是端口号
*/
//给定初始ip地址
p[16]="192.168.60.1";
inet_pton(AF_INET,p,&s_ip);
//初始端口号
port =1;
//把端口号转为网络字节序
//初始化套接字
S_sockadd->sin.family =AF_INET;
S_sockadd->sin.port=htons(port);
S_sockadd->sin_addr=s_ip;
//创建一个socket
sfd=socket(AF_INET,SOCK_STREAM,0);
if(sfd==-1)
{
perror(socket error);
_exit(1);
}
else
{
for( I=1;I<=509;I++)
{
for(;port<=65535;port++)
{
//调用connect进行连接
int cr=connect (sfd,(struct sockaddr *)&S_sockadd,sizeof(S_sockadd));
if(cr!=-1)
{
printf("the host is open and :");
inet_ntop(AF_INET,&S_sockadd.sin_addr),&p,sizeof(S_sockadd.sin_addr);
printf("ip is : %s",p);
printf("port :%d",port);
printf("open \n");
}
printf("\n\n");
}
//当端口加1之后,IP地址要自动加1
ip=htonl(S_sockadd.sin_addr);
ip++;
s_ip=ntohl(ip);
S_sockadd.sin_addr=s_ip;
}
}
return 0;
}
0 0
- UNIX环境编程学习笔记------编程实例----扫描一个网段的端口
- UNIX环境编程学习笔记-----编程实例------一个简单的服务器端和客户端程序
- Unix环境编程学习笔记-----编程实例---- the fist exit
- Unix环境编程学习笔记-----编程实例---- the normal exit1
- Unix环境编程学习笔记-----编程实例---- the normal exit2
- UNIX环境编程学习笔记------编程实例-----对于 函数 inet_ntop()函数的第四个参数的理解
- 扫描一个网段的所有端口
- 扫描一个网段的所有端口
- UNIX环境编程学习笔记------编程实例----域名解析函数的函数原型即getaddrinfo()函数原型
- UNIX环境编程学习笔记---------编程实例----自己写的CS程序
- UNIX环境编程学习笔记----unix编程实例----signal使用实例
- UNIX环境编程-----原始套接字学习笔记----转载实例
- Unix学习笔记-------Unix编程实例练习
- Unix学习笔记----编程实例-------Link函数的实例使用:
- UNIX环境高级编程第二版_扫描 版笔记
- UNIX环境编程----编程实例---创建一个子进程并建立一个新的会话
- 一个方便学习《Unix环境高级编程》的小脚本
- UNIX编程环境笔记
- >贪心算法
- Mybatis environment set up
- 计算几何算法概览
- Python:计算一段代码的执行时间
- 深度图像补洞算法模板
- UNIX环境编程学习笔记------编程实例----扫描一个网段的端口
- PAT Basic 1009
- 记录网络请求清楚缓存方法
- 蓝桥杯OJ刷题日记——11-基础练习 十六进制转十进制
- html通过JavaScript调用java代码
- 部署web项目时遇到的一个问题
- leetcode Range Sum Query - Mutable
- 安装rgbd slam v2时,部分问题
- leetcode Additive Numbers---重点