C++代码来查找BSSID OF 关联网络
C++ code to find BSSID OF associated network
可能的重复项:
想知道通过 UBUNTU 中的C++无线网络的 ESSID
你好
我编写了以下代码,它是项目的一部分。它用于查找当前关联网络的 ESSID。但是,它有一个缺陷,即它还显示与我不关联的网络的ESSID,即如果我尝试将自己与无线n/w相关联并且如果不成功,即没有收到DHCP报价,那么它也将显示我尝试过的ESSID。
如果可能的话,试着给我一个ioctl电话来查找当前关联的无线n/w的BSSID,因为这是我标记黑白关联和非关联的唯一方法。
法典:
int main (void)
{
int errno;
struct iwreq wreq;
CStdString result = "None";
int sockfd;
char * id;
char ESSID[100];
memset(&wreq, 0, sizeof(struct iwreq));
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
fprintf(stderr, "Cannot open socket n");
fprintf(stderr, "errno = %d n", errno);
fprintf(stderr, "Error description is : %sn",strerror(errno));
return result ;
}
CLog::Log(LOGINFO,"Socket opened successfully");
FILE* fp = fopen("/proc/net/dev", "r");
if (!fp)
{
// TBD: Error
return result;
}
char* line = NULL;
size_t linel = 0;
int n;
char* p;
int linenum = 0;
while (getdelim(&line, &linel, 'n', fp) > 0)
{
// skip first two lines
if (linenum++ < 2)
continue;
p = line;
while (isspace(*p))
++p;
n = strcspn(p, ": t");
p[n] = 0;
strcpy(wreq.ifr_name, p);
id = new char[IW_ESSID_MAX_SIZE+100];
wreq.u.essid.pointer = id;
wreq.u.essid.length = 100;
if ( ioctl(sockfd,SIOCGIWESSID, &wreq) == -1 ) {
continue;
}
else
{
strcpy(ESSID,id);
return ESSID;
}
free(id);
}
free(line);
fclose(fp);
return result;
}
您没有提到您是否使用独立的基本服务集(即没有控制接入点的点对点网络),因此如果您不尝试创建点对点网络,则BSSID应该是本地接入点的MAC地址。 可用于访问该信息ioctl()
常量是 SIOCGIWAP
。 ioctl
有效负载信息将存储在iwreq
结构中,地址为 u.ap_addr.sa_data
。
相关文章:
- Usages of std::move
- 关联容器的下界复杂性:成员函数与非成员函数
- 使用 [] 运算符时"binding reference of type discards qualifiers"
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 具有变量Number of Arguments的std::函数的矢量
- Capacity of a deque
- std::future_error:无关联状态
- Deprecation of _writeBarrier()
- constexpr begin of a std::array
- 如何调整 std::vector of Eigen::MatrixXd 的大小
- C++ "error: invalid use of void expression"
- 我看到"use of undeclared identifier"错误,有人可以告诉我如何解决它吗?
- 赛通"Cannot take address of memoryview slice"
- 查找自动生成键并具有线性内存消耗的小型关联数组
- C++ Version Of Double.longBitsToDouble
- 收到错误"invalid use of non-static data member 'stu::n' "
- C++ Usage of AsyncCallback
- 错误:"Left of getValue must have class/struct/union"
- C++代码来查找BSSID OF 关联网络
- C++代码来查找BSSID OF 关联网络