久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

原始套接字混雜模式不嗅探我寫的內(nèi)容

Raw Socket promiscuous mode not sniffing what I write(原始套接字混雜模式不嗅探我寫的內(nèi)容)
本文介紹了原始套接字混雜模式不嗅探我寫的內(nèi)容的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我正在用混雜模式編寫一個(gè)帶有原始套接字的程序,我需要原始套接字而不是嗅探我發(fā)送的數(shù)據(jù)包.我只需要通過以太網(wǎng) rx 線(而不是 tx 線)讀取數(shù)據(jù).可能嗎?

I am writing a program with a Raw Socket in promiscuous mode and I need the raw socket not sniff the packet I send. I need to read only the data over the ethernet rx wire (not the tx wire). It's posible?

非常感謝.

推薦答案

解決方案是查看讀取的數(shù)據(jù)包是否為 PACKET_OUTGOING.使用此選項(xiàng),您可以區(qū)分放入以太網(wǎng) tx 線的數(shù)據(jù)包和從 rx 線讀取的數(shù)據(jù)包.

The solution is to look in the read packet if it is a PACKET_OUTGOING. Using this option you can diference the packet you put in the ethernet tx wire and the packet you read from the rx wire.

以混雜模式打開套接字:

Open the Socket in promiscuous mode:

char* i = "eth0";
int fd;
struct ifreq ifr;
struct sockaddr_ll interfaceAddr;
struct packet_mreq mreq;

if ((fd = socket(PF_PACKET,SOCK_RAW,htons(ETH_P_ALL))) < 0)
    return -1;

memset(&interfaceAddr,0,sizeof(interfaceAddr));
memset(&ifr,0,sizeof(ifr));
memset(&mreq,0,sizeof(mreq));

memcpy(&ifr.ifr_name,i,IFNAMSIZ);
ioctl(fd,SIOCGIFINDEX,&ifr);

interfaceAddr.sll_ifindex = ifr.ifr_ifindex;
interfaceAddr.sll_family = AF_PACKET;

if (bind(fd, (struct sockaddr *)&interfaceAddr,sizeof(interfaceAddr)) < 0)
    return -2;


mreq.mr_ifindex = ifr.ifr_ifindex;
mreq.mr_type = PACKET_MR_PROMISC;
mreq.mr_alen = 6;

if (setsockopt(fd,SOL_PACKET,PACKET_ADD_MEMBERSHIP,
     (void*)&mreq,(socklen_t)sizeof(mreq)) < 0)
        return -3;
//...

并閱讀.現(xiàn)在,我們可以區(qū)分 Rx 和 Tx 以太網(wǎng)線:

And read. Now, We can differentiate between the Rx and Tx ethernet wire:

unsigned char buf[1500];
struct sockaddr_ll addr;
socklen_t addr_len = sizeof(addr);
n = recvfrom(fd, buf, 2000, 0, (struct sockaddr*)&addr, &addr_len);
if (n <= 0)
{
    //Error reading
}
else if (addr.sll_pkttype == PACKET_OUTGOING)
{
    //The read data are not writing by me.
    //Use only this data to copy in the other network.
}

這就是全部.使用它我不會(huì)讀取我寫的數(shù)據(jù).當(dāng)我將網(wǎng)絡(luò) 1 幀復(fù)制到網(wǎng)絡(luò) 2 并將網(wǎng)絡(luò) 2 幀復(fù)制到網(wǎng)絡(luò) 1 時(shí),我避免了循環(huán).

And it's all. Using it I don't read the data I write. I avoid the loop when I copy the network 1 frames to network 2 and the network 2 frames to network 1.

這篇關(guān)于原始套接字混雜模式不嗅探我寫的內(nèi)容的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Assertion failed (size.widthgt;0 amp;amp; size.heightgt;0)(斷言失敗(size.width0 amp;amp; size.height0))
Rotate an image in C++ without using OpenCV functions(在 C++ 中旋轉(zhuǎn)圖像而不使用 OpenCV 函數(shù))
OpenCV: process every frame(OpenCV:處理每一幀)
Why can#39;t I open avi video in openCV?(為什么我不能在 openCV 中打開 avi 視頻?)
OpenCV unable to set up SVM Parameters(OpenCV 無法設(shè)置 SVM 參數(shù))
Convert a single color with cvtColor(使用 cvtColor 轉(zhuǎn)換單一顏色)
主站蜘蛛池模板: 亚洲黄色录像 | 国产精品一区二区久久 | 日韩伦理一区 | 在线视频成人 | 亚洲黄色大片 | 日韩激情一区二区 | 操女人网站 | 男女激情av | 亚洲精品久久久久久久久久久 | 日韩一区不卡 | 精品久久精品 | 成人性色生活片 | 免费在线黄色网址 | 不卡av在线播放 | 亚洲一区二区欧美 | 二区三区视频 | 亚洲天堂男人天堂 | 精品一区二区视频 | 伊人久久精品视频 | 精品伊人久久 | 成人a级片 | 黄色天天影视 | 亚洲免费网站 | 在线观看91 | 国产精品久久久久久久久久辛辛 | 亚洲精品国产精品国自产观看浪潮 | 人人爱av| 午夜美女福利 | 亚洲精品aaa| 又色又爽又黄gif动态图 | 欧美天堂在线 | 黄色在线观看免费 | a毛片视频| 欧美性猛交一区二区三区精品 | 久久精品2 | 黄色一级片免费看 | 超碰免费在线观看 | 黄色在线播放 | 香蕉伊人网 | 国产精品久久久一区二区 | 国产a视频|