繁体   English   中英

创建一个原始套接字-Debian + Codeblocks

[英]Creating a raw socket - Debian + Codeblocks

我目前正在研究学士学位论文的开始阶段,而我的问题是实现网关(又称路由器)。 我目前正在尝试打开一个原始套接字,以便可以粉碎打开一个以太网数据包,并检查它包含哪些不同类型的字段。

我正在使用Codeblocks IDE在Debian VM上编写C ++代码。

当尝试通过以下代码打开原始套接字时,出现错误消息:

    Error creating raw socket: Operation not permitted

码:

    int CreateRawSocket(int protocol_to_sniff)
    {
        int s;

        if((s = socket(PF_PACKET, RAW_SOCK, htons(protocol_to_sniff))) == -1)
        {
            perror("Error creating raw socket");
            exit(-1);
        }

        return s;
    }

    int main()
    {

    int s = CreateRawSocket(ETH_P_ALL);

    }

我进行了一些搜索,但似乎无法解决问题,尽管我认为我知道问题出在哪里。 据我了解,这是一个权限问题,但是我不知道如何赋予代码块sudo权限。

有任何想法吗?

解决了。 实际上,这真的很简单。

我进入了:

     sudo codeblocks

并且它以sudo权限打开了代码块,但是我必须保持该终端窗口运行,否则它将关闭代码块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM