亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4455 | 回復(fù): 1
打印 上一主題 下一主題

[Linux] Linux netlink的NETLINK_SOCK_DIAG如何被動監(jiān)聽? [復(fù)制鏈接]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-02-13 14:53 |只看該作者 |倒序瀏覽
   我的內(nèi)核版本是3.12, NETLINK里面有一個叫NETLINK_SOCK_DIAG的項, 注釋是 socket monitor,  我自己理解如下:

如果有一個程序創(chuàng)建了NETLINK_SOCK_DIAG的netlink socket, 那么它可以監(jiān)控所有的應(yīng)用程序創(chuàng)建的socket, 即在其他應(yīng)用程序創(chuàng)建socket之后,它會收到內(nèi)核發(fā)來的netlink消息。
我寫了程序嘗試, 主要代碼如下:
  1. sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG);

  2. struct sockaddr_nl sa;
  3. sa.nl_family = AF_NETLINK;
  4. sa.nl_groups = 0xFFFFFFFF;
  5. sa.nl_pid = 0;
  6. bind(sock, &sa, sizeof(sa));

  7. while(1)
  8. {
  9.     recv(sock, buffer, 4096, 0);
  10.     printf("recv message\n");
  11. }
復(fù)制代碼
啟動這個程序后, 嘗試arping/ping/tftp/ftp, 發(fā)現(xiàn)并未收到任何內(nèi)核主動發(fā)來的netlink消息。  只有主動向內(nèi)核發(fā)送request消息,才會收到reply。

請教各位: 是否可以做到被動監(jiān)聽所有socket(即內(nèi)核主動通知進程,而非進程定時發(fā)送request查詢).  
google搜了很久, 沒發(fā)現(xiàn)有用的介紹

論壇徽章:
0
2 [報告]
發(fā)表于 2015-05-27 22:18 |只看該作者
回復(fù) 1# woshizzb
static int __net_init diag_net_init(struct net *net)
{
        struct netlink_kernel_cfg cfg = {
                .input        = sock_diag_rcv,
        };

        net->diag_nlsk = netlink_kernel_create(net, NETLINK_SOCK_DIAG, &cfg);
        return net->diag_nlsk == NULL ? -ENOMEM : 0;
}

在內(nèi)核處建立NETLINK的時候,使用的就是接收發(fā)送機制,而且使用的是單播。
如果你想內(nèi)核主動通知進程,可參考netlink中的NETLINK_NFLOG接口


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP