当前位置:首页 » 编程语言 » c语言ip扫描

c语言ip扫描

发布时间: 2022-03-05 15:18:00

‘壹’ c语言IP地址查询系统如何实现


C语言如何实现IP地址查询系统
参考如下:

voidGetNameAndIp()
{
structhostent*host;
structin_addr*ptr;
DWORDdwScope=RESOURCE_CONTEXT;
NETRESOURCE*NetResource=NULL;
HANDLEhEnum;
WNetOpenEnum(dwScope,NULL,NULL,NULL,&hEnum);
WSADATAwsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if(hEnum)
{
DWORDCount=0xFFFFFFFF;
DWORDBufferSize=10240;
LPVOIDBuffer=newchar[10240];
WNetEnumResource(hEnum,&Count,Buffer,&BufferSize);
NetResource=(NETRESOURCE*)Buffer;
charszHostName[200];
for(unsignedinti=0;i<BufferSize/sizeof(NETRESOURCE);i++,NetResource++)
{
if(NetResource->dwUsage==RESOURCEUSAGE_CONTAINER&&NetResource->dwType==RESOURCETYPE_ANY)
{
if(NetResource->lpRemoteName)
{
CStringstrFullName=NetResource->lpRemoteName;
if(0==strFullName.Left(2).Compare(_T("\\")))
strFullName=strFullName.Right(strFullName.GetLength()-2);
gethostname(szHostName,strlen(szHostName));
USES_CONVERSION;
char*pchar=T2A(strFullName);
host=gethostbyname(pchar);
if(host==NULL)continue;
ptr=(structin_addr*)host->h_addr_list[0];
stringstr="";
for(intn=0;n<4;n++)
{
CStringaddr;
if(n>0)
{
str+=".";
}
intvalue=(unsignedint)((unsignedchar*)host->h_addr_list[0])[n];
charp[20];
sprintf(p,"%d",value);
str.append(p);
}
std::cout<<"IP:"<<str<<"Name:"<<host->h_name<<std::endl;
}
}
}
deleteBuffer;
WNetCloseEnum(hEnum);
}
WSACleanup();
}

‘贰’ C语言能获取当前IP吗

#include "stdio.h"
#include "conio.h"
main()
{
int i,j;
char ip[20];
char temp[100];
char ch='\0';
FILE *fp;
system("ipconfig >d:\\myip.txt");
if ((fp=fopen("d:\\myip.txt","r"))==NULL)
{
printf("the file can not open:\nPress any key to exit:");
getch();
exit(1);
}
for (i=0;i<7;i++)
{fgets(temp,80,fp); /*跳过一些行*/
/*printf("%s\n",temp); */}
fgets(temp,80,fp);
i=0;j=0;
while (temp[i++]!=':')
;
while (temp[i]!='\n')
ip[j++]=temp[i++];
ip[j]=0;
printf("IP=%s\n",ip);
fclose(fp);
system("del d:\\myip.txt");

getch();
}

‘叁’ 如何用C语言获得本机IP地址

structin_addraddr;
hostent*pHost=::gethostbyname("localhost");//在此写入你自己电脑主机名字
switch(pHost->h_addrtype){
caseAF_INET:
printf("internet网络地址类型(AF_INET) ");
break;
caseAF_INET6:
printf("internet网络地址类型(AF_INET) ");
break;
caseAF_NETBIOS:
printf("netbios网络地址类型(AF_NETBIOS) ");
break;
default:
printf("其它地址类型%d ",pHost->h_addrtype);
break;
}
printf(" 地址长度:%d(字节) ",pHost->h_length);
addr.s_addr=*(u_long*)pHost->h_addr_list[0];
printf(" 第一个IP地址为:%s ",inet_ntoa(addr));

‘肆’ C语言查询本机ip地址的程序

#include <windows.h>
#include <winsock2.h>

‘伍’ 找一个ip扫描器的c语言代码

的IP冲突好使工具,曾经搞死过几十个网吧.

当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和交换机,让所有上网的流量必须经过病毒主机。其他用户原来直接通过交换机上网现在转由通过病毒主机上网,切换的时候用户会断一次线。由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从交换机上网(此时交换机MAC地址表正常),切换过程中用户会再断一次线。该病毒发作时,仅影响同网段内机器的正常上网.

换个路由器吧,ARP病毒是利用网关做跳板的,从而对内网的IP进行干扰。况且ARP病毒使用的IP一般都是假IP,不会给你这么容易找到的。要防止服务器给ARP病毒干扰,装个ANTI ARP SNIFFER,GOOGLE一下就有了。

如果内网的用户比较少用互联网,那么应该在路由器上面封端口或者封IP,禁止那些没有必要办公的时候上网的用户,这也是为了降低内网爆发病毒的风险所采取的手段之一.
2.还是病毒

对于VIKING这个病毒,以及他带来的一大堆变种,其实要对付也不是难处。这东西利用扫描administrator和guest帐号口令为空的计算机,并通过共享迅速到处传播,但现在内网的用户多用windows,那个人机器上没有默认共享的?

买个交换机,带ACL功能的,把135.139.445这几个端口都在交换机上面封掉。由于带ACL功能的核心交换机上面一般带有背板缓冲,对于病毒所进行的大线程扫描来讲,可以在网络资源上保证内网的一定畅通。

你用的Symantec AntiVirus 10是网络版么?如果是的话,把每个客户端的策略都分发一遍,网络版杀毒软件的统一内网客户端策略可以保证内网的一定程度无毒性。
3.ping这个问题

这实在没什么好说的,病毒造成的扫描(包括VIKING一些变种)在寻找可传染主机的时候,为了加速扫描线程,都会寻求受传染主机的ICMP ECHO(也就是PING的回传值),给服务器启用个人版防火墙吧。什么?你没装防火墙?那就由得人家PING死服务器算了。

‘陆’ 扫描本网段ip c语言实现

ping 使用的是ICMP报文
获取远端机器的MAC地址使用的是UDP报文
方法是不一样的

UDP报文套接字 socket
RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
端口一般 取 137(10进制)
如果扫描成功可以获取远端机器的工作组名称,机器名称,MAC地址

‘柒’ C语言列出所有IP

#include<stdio.h>

constintMAXSIZE=1024;

structdata{
charip1[16];
charip2[16];
charaddr[60];
}a[MAXSIZE];

intmain(){
inti,n=0;
FILE*fin=fopen("data1.txt","rt");
if(fin==NULL){
printf("无法打开数据文件。 ");
return1;
}
while(n<MAXSIZE&&fscanf(fin,"%s%s%s",a[n].ip1,a[n].ip2,a[n].addr)==3)
++n;
for(i=0;i<n;++i)
printf("%15s%15s%s ",a[i].ip1,a[i].ip2,a[i].addr);
return0;
}

‘捌’ c语言命令显示ip地址

system("ipconfig") 加这句就可以了

‘玖’ C语言如何实现IP地址查询系统

C语言如何实现IP地址查询系统
参考如下:

voidGetNameAndIp()
{
structhostent*host;
structin_addr*ptr;
DWORDdwScope=RESOURCE_CONTEXT;
NETRESOURCE*NetResource=NULL;
HANDLEhEnum;
WNetOpenEnum(dwScope,NULL,NULL,NULL,&hEnum);
WSADATAwsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if(hEnum)
{
DWORDCount=0xFFFFFFFF;
DWORDBufferSize=10240;
LPVOIDBuffer=newchar[10240];
WNetEnumResource(hEnum,&Count,Buffer,&BufferSize);
NetResource=(NETRESOURCE*)Buffer;
charszHostName[200];
for(unsignedinti=0;i<BufferSize/sizeof(NETRESOURCE);i++,NetResource++)
{
if(NetResource->dwUsage==RESOURCEUSAGE_CONTAINER&&NetResource->dwType==RESOURCETYPE_ANY)
{
if(NetResource->lpRemoteName)
{
CStringstrFullName=NetResource->lpRemoteName;
if(0==strFullName.Left(2).Compare(_T("\\")))
strFullName=strFullName.Right(strFullName.GetLength()-2);
gethostname(szHostName,strlen(szHostName));
USES_CONVERSION;
char*pchar=T2A(strFullName);
host=gethostbyname(pchar);
if(host==NULL)continue;
ptr=(structin_addr*)host->h_addr_list[0];
stringstr="";
for(intn=0;n<4;n++)
{
CStringaddr;
if(n>0)
{
str+=".";
}
intvalue=(unsignedint)((unsignedchar*)host->h_addr_list[0])[n];
charp[20];
sprintf(p,"%d",value);
str.append(p);
}
std::cout<<"IP:"<<str<<"Name:"<<host->h_name<<std::endl;
}
}
}
deleteBuffer;
WNetCloseEnum(hEnum);
}
WSACleanup();
}

‘拾’ c语言编程 实现ip地址查找 方法用二进制trie

不知道您有没有学习过计算机网络。如果没有,下面简单介绍一下IP地址和掩码。
IP地址是32位的,也就是4字节。取值可以任意。
掩码也是32位的,一般建议前面的位都为1,后面的位都为0。所以本题:
(1)只要是32位的都是有效的。
(2)判断是否全1后面接全0.
(3)如果掩码的前n位为1,那么此IP所在网络全部有效IP地址是此IP地址的前n位不变,后面的位从全0到全1,比如IP地址为1.1.1.1掩码为FFFF0000,那么此IP地址所在网络的全部有效IP地址是从1.1.0.0到1.1.255.255。
(4)两个IP地址都与掩码进行二进制与,看得到的结果是否相同,如果相同则在同一子网中,否则不在同一子网中。这个用c很容易实现。

热点内容
算法工作原理 发布:2025-01-12 20:36:38 浏览:24
网络访问监控软件 发布:2025-01-12 20:26:57 浏览:465
养羊啦源码 发布:2025-01-12 20:25:48 浏览:570
轩逸朗逸哪个配置最好 发布:2025-01-12 20:10:00 浏览:49
主板存储器分 发布:2025-01-12 20:04:46 浏览:376
数据库逻辑运算 发布:2025-01-12 20:03:54 浏览:571
javawindows服务器搭建 发布:2025-01-12 19:59:37 浏览:570
linux关闭iptables 发布:2025-01-12 19:58:49 浏览:150
服务器电脑名字改了影响数据库吗 发布:2025-01-12 19:58:44 浏览:652
手机存储优化 发布:2025-01-12 19:58:43 浏览:356