2013-02-27 76 views
2

我正在使用NF_INET_PRE_ROUTING掛鉤的Linux內核模塊中工作。在那個鉤子中,我需要知道我所有的net_devices,特別是無線設備的狀態。我可以從net_device->flags獲得有關設備的一些信息,即IFF_UP是設備啓動或關閉。但我需要一些關於無線net_device的更多細節。如何獲取有關無線網絡設備的信息

  1. 是net_device無線/有線嗎?
  2. 無線設備是否連接到無線接入點?
  3. 如果是哪個無線接入點(接入點的名稱)?
  4. 與該設備關聯的網關地址(我認爲,我需要從路由表中獲取該地址?)。

回答

1

if(net_device->ieee80211_ptr != NULL)ieee80211_ptrstruct wireless_dev*。這個結構應該可以讓你訪問你請求的大部分值。在struct wireless_devstruct wiphy *wiphy;,你可以用這個來得到cfg80211_registered_devicewiphy_to_dev()

網關地址與無線無關。我懷疑devices有任何網關信息,但您需要在net_device的接口name找到路線。該路線是IP相關,與device無關。祝你好運。

+0

謝謝比爾,我能夠得到cfg80211_registered_device。但仍然努力獲取連接狀態和連接的'接入點'的名字 – 2013-02-28 10:12:11

+0

'cfg80211_conn'有'wireless_dev'中的'cfg80211_connect_params'這個* AP名*。我沒有看到一個優雅的方式來獲取這些信息。 'cfg80211_conn'指針本身指示一個連接。 – 2013-02-28 15:37:09

+0

其實我正在接收來自「有線」網絡的數據包(在我的情況下是'eth0'),並在可用和連接的無線網絡上重定向數據包。 – 2013-02-28 18:29:36

1

請參閱iwconfig,iwlist和其他實用程序。

+0

我在內核模塊中需要此信息,特別是在「NF_INET_PRE_ROUTING」鉤子中。 – 2013-02-27 20:02:32

相關問題