91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-06
  • 語言: C/C++
  • 標簽: 路由??route??

資源簡介

簡單的路由程序,winpcap,vs2010,c++,沒寫界面。 改進:利用線程&arp緩存表

資源截圖

代碼片段和文件信息


#include
#include
#include
#include
#include“標頭.h“
#pragma?comment?(lib“ws2_32.lib“)

using?namespace?std;
#pragma?pack(1)
typedef?struct?frameHeader_t//幀首部
{
BYTE?DesMac[6];
BYTE?SrcMac[6];
WORD?frameType;
}frameHeader_t;

typedef?struct?IPHeader_t?{ //IP首部
BYTE Ver_HLen;???//版本與協議類型
BYTE TOS;????????//服務類型
WORD TotalLen;???//總長度
WORD ID;?????????//標識
WORD Flag_Segment;?//標志和片偏移
BYTE TTL;????????//生存周期
BYTE Protocol;???//協議
WORD Checksum;???//校驗和
ULONG SrcIP;??????//源IP地址
ULONG DstIP;??????//目的IP地址
}?IPHeader_t;

typedef?struct?IPData_t?{ //包含幀首部和IP首部的數據包
frameHeader_t frameHeader;
IPHeader_t IPHeader;
}?IPData_t;

typedef?struct?ARPframe_t//ARP幀
{
frameHeader_t?frameHeader;
WORD?HardwareType;
WORD?ProtocolType;
BYTE?HLen;
BYTE?PLen;
WORD?Operation;
BYTE?SendHa[6];
DWORD?SendIP;
BYTE?RecvHa[6];
DWORD?RecvIP;
}ARPframe_t;

#pragma?pack()

void?print(ULONG?IP);
bool?ARPRequest(pcap_t?*p?UCHAR?*srcMAC?ULONG?scrIP?ULONG?targetIP);
int?main()
{
int?number?=?0;
bool?flag?=?0;//是否得到IPv4包,0為沒有得到。
BYTE?my_mac[6];
BYTE?its_mac[6];
ULONG?my_ip;

router_table?*?rt?=?new?router_table[RT_TABLE_SIZE];
int?rt_length?=?0;//路由表的初始長度

pcap_if_t?*?alldevs;
pcap_if_t?*d;
pcap_addr_t?*a;

ULONG?targetIP;

char?errbuf[PCAP_ERRBUF_SIZE];
int?num?=?0;//記錄有幾個網絡接口卡
if?(pcap_findalldevs_ex(PCAP_SRC_IF_STRING
NULL
&alldevs
errbuf)?==?-1)
{
cout?< }

for?(d?=?alldevs;?d?!=?NULL;?d?=?d->next)
{
cout?< cout?<name?< cout?<riptION:?“?<description?< num++;


for?(a?=?d->addresses;?a?!=?NULL;?a?=?a->next)
{
if?(a->addr->sa_family?==?AF_INET)
{
cout?< print((((sockaddr_in?*)a->addr)->sin_addr).s_addr);
cout?< print((((sockaddr_in?*)a->netmask)->sin_addr).s_addr);
cout?< print((((sockaddr_in?*)a->broadaddr)->sin_addr).s_addr);
cout?< // cout?< // print((((sockaddr_in?*)a->dstaddr)->sin_addr).s_addr);
}
}

}

cout?<

cout?< int?in;
cin?>>?in;
in--;
int?i?=?0;
for?(d?=?alldevs;?d?!=?NULL&&i?!=?in;?d?=?d->next)
{
i++;
}
////////////////打印出來IP等///////
for?(a?=?d->addresses;?a?!=?NULL;?a?=?a->next)
{
if?(a->addr->sa_family?==?AF_INET)
{
cout?< print((((sockaddr_in?*)a->addr)->sin_addr).s_addr);
cout?< print((((sockaddr_in?*)a->netmask)->sin_addr).s_addr);
cout?< print((((sockaddr_in?*)a->broadaddr)->sin_addr).s_addr);
cout?< // cout?< // print((((sockaddr_in?*)a->dstaddr)->sin_addr).s_addr);

ULONG?NetMask?DesNet?NextHop;
DesNet?=?(((sockaddr_in?*)a->addr)->sin_ad

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1973??2014-09-16?08:49??標頭.h

?????文件??????16825??2014-09-16?08:52??源.cpp

-----------?---------??----------?-----??----

????????????????18798????????????????????2


評論

共有 條評論