當前位置:首頁 » 編程語言 » 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很容易實現。

熱點內容
android智能機器人 發布:2025-01-12 19:41:49 瀏覽:56
小米civi如何刷純安卓系統 發布:2025-01-12 19:41:40 瀏覽:45
壓縮高櫃 發布:2025-01-12 19:41:37 瀏覽:330
騰訊雲購買後怎麼找到伺服器ip 發布:2025-01-12 19:41:37 瀏覽:826
android視頻資源 發布:2025-01-12 19:39:17 瀏覽:335
odoo源碼 發布:2025-01-12 19:29:28 瀏覽:629
教你如何讓網速不卡安卓手機 發布:2025-01-12 19:18:45 瀏覽:471
伺服器如何搭建文件 發布:2025-01-12 19:06:34 瀏覽:384
安卓設置許可權是什麼意思 發布:2025-01-12 19:05:59 瀏覽:159
自動編譯div 發布:2025-01-12 18:51:06 瀏覽:661