-
实验内容
用C语言编写一个在linux下扫描局域网内主机的程序。要求可以显示局域网内的主机名列表,IP地址列表,并可以显示哪些主机开放了哪些端口
-
实验环境
VMware Ubuntu18虚拟机
-
实验内容及步骤
1、程序流程图:
2、主要函数说明:
(1)void TranAddr(char *ad)
输入一个地址,输出其局域网内的前n个地址,到address结构体中。
首先删除IP地址第三位小数点后面的字符,然后使用TranNum(将整型变量转换为字符串)和strcat函数将输入IP地址的子网的前Number_of_LAN个IP地址储存到addr[Number_of_LAN][Number_of_ports]二维结构体数组中,再使用inet_pton函数转换IP地址为二进制,最后使用gethostbyaddr函数查询IP地址对应的主机名并储存到二维结构体数组之中。
(2)void sockconnect(struct Address *b)
输入一个Address结构体,读取IP地址和端口信息,使用connect函数尝试连接对应主机的端口,并将连接结果储存到结构体之中。
(3ÿ