Wi-Fi カードが廃止され、ほとんどのアプリケーションが nl80211 を使用していることに気付いたとき、iwconfig/ioctl を使用して Wi-Fi カードを処理するコードを書き始めました。ソースコードを読み始めましたが、ドキュメントがなく、コードが少し複雑です。nl80211 または libnl を使用して、スキャン、オン/オフの切り替え、カード モードの設定などの簡単なことを行うにはどうすればよいですか? これは私がiwで始めたものです:
void set_card_mode(MODE mode, std::string ifname)
{
int skfd = iw_sockets_open();
struct iwreq wrq;
wrq.u.mode = static_cast<unsigned int>(mode);
power_interface(ifname, false);
if(iw_set_ext(skfd, ifname.c_str(), SIOCSIWMODE, &wrq) < 0)
throw std::runtime_error("Can set card mode");
}
MODE get_card_mode(std::string ifname)
{
int skfd = iw_sockets_open();
struct iwreq wrq;
if (iw_get_ext (skfd, ifname.c_str(), SIOCGIWMODE, &wrq) >= 0)
{
return static_cast<MODE>(wrq.u.mode);
}
}
wifiインターフェイスまたは「set_mode」や「power_off」などの単純な機能を備えたAPIを設定/取得するためのiw_get_extに相当するものはありますか?