網路第二課(2) arp請求

2021-06-18 20:11:53 字數 2245 閱讀 6142

關於arp包(位址解析協議)

arp請求與arp應答;然後通過tcpdump來捕捉我們的arp請求與arp應答。

arp請求(知道對方的ip位址,要得到對方的mac位址):我們通過我們pc的網絡卡,來向我們的區域網內的所有使用者,傳送乙個廣播(當我們的arp請求發出的時候,tcpdump就能捕捉到,從我們網絡卡發出的arp請求);

arp應答:如果對方是我們請求的ip,這乙個使用者就應答我們(傳送乙個單播,把自己的mac位址填到,我們之前傳送過去的資料,然後發給我們。);如果不是我們請求的ip,這個使用者就丟掉,我們的arp請求。

arp心跳:就是我們os每隔乙個心跳,就向我們區域網內傳送乙個arp廣播,這樣我們就可以知道區域網內聯上網的使用者,把這些使用者的ip/mac放到我們的arp快取裡面。當我們要通訊的時候,就不用直接傳送arp請求來,來獲得我們要通訊對方的ip/mac。如上網頁:http:直接http請求與http應答。

#include

#include

#include

#include

#include

#include

#include

#pragma pack(1)

struct machdr;

struct arphdr;

int main()

unsigned char buff[1024] = ;

//mac

struct machdr *mac = (struct machdr *)buff;

mac->dest[0] =0xff;//對方的mac全充1;傳送arp請求後,對方os為填充自已的mac,然後做出應答。

mac->dest[1] = 0xff;    

mac->dest[2] = 0xff;    

mac->dest[3]= 0xff;    

mac->dest[4]= 0xff;    

mac->dest[5]=0xff;    

mac->source[0]= 0x6c;//源mac   

mac->source[1]= 0xf0;    

mac->source[2]= 0x49;    

mac->source[3]= 0x89;    

mac->source[4]= 0xd2;    

mac->source[5]= 0x54;    

mac->proto = htons(0x0806);//表明上層為arp

//arp

struct arphdr *arp = (struct arphdr *)(buff+14);

arp->hd = htons(1);

arp->proto = htons(0x0800);

arp->hd_len = 6;    

arp->proto_len = 4;

arp->option = htons(1);

arp->dest_eth[0] =0xff;

arp->dest_eth[1] = 0xff;    

arp->dest_eth[2] = 0xff;    

arp->dest_eth[3]= 0xff;    

arp->dest_eth[4]= 0xff;    

arp->dest_eth[5]=0xff;    

arp->dest_ip = inet_addr("192.168.50.148");//這是對方的ip

// 6c:f0:49:89:d2:54

arp->source_eth[0]= 0x6c;    

arp->source_eth[1]= 0xf0;    

arp->source_eth[2]= 0x49;    

arp->source_eth[3]= 0x89;    

arp->source_eth[4]= 0xd2;    

arp->source_eth[5]= 0x54;    

arp->source_ip = inet_addr("192.168.50.142");//這是我的ip

struct sockaddr a;

a.sa_family = af_inet;

strcpy(a.sa_data,"eth0");

ret = sendto(fd,buff,42,0,&a,sizeof(str uct sockaddr));//send是面向連線的;sendto是面向無連線的

if(ret < 0)

return 0;

}

第二課 安裝PHP

為什麼要安裝php?php是伺服器端解析程式,一般執行在網路伺服器上。而編寫php語言的程式我們一般是在自己的個人電腦上完成,然後拿到伺服器上除錯。所以,學習php首先要讓我們的個人電腦模擬伺服器執行環境,讓php能象在伺服器上一樣在我們的個人電腦上執行。這就是為什麼要安裝配置php的原因。安裝配置...

csdn之旅 第二課

1.html標題的標籤 1 注意 只能到,在往後就沒有作用了。2 標籤特點 可以區別其他文字,比如可以加粗 效果圖如 笑對生活!笑對生活!笑對生活!笑對生活!改變字型大小 可以自動換行 2.html段落標記 用元素 注意 標籤和標籤之間的關係 可以巢狀使用 但不可以交叉 3.html常用標記 單標記...

第二課 加法運算

在程式設計當中,文字框及按鈕是用得比較多的乙個控制項,我們先來學學如何使用這兩個控制項。1 新建乙個窗體 2 在窗體上放置三個文字框控制項,分別命名為 txtnum1 txtnum2 txtnum3,我們在命名時,盡量規範一點,可參考這裡 3 在窗體上放置乙個按鈕,命名為cmdcount 開始程式設...