离线
你是要程序获取IP地址?
是的 就是DHCP分配了地址了 我程序要怎样知道这个分配IP
我现在就是用 ip addr show | grep \"scope global wlan0\"去读取出来放到文件中 再去解析文件 我觉得太麻烦了
离线
是的 就是DHCP分配了地址了 我程序要怎样知道这个分配IP
我现在就是用 ip addr show | grep \"scope global wlan0\"去读取出来放到文件中 再去解析文件 我觉得太麻烦了
https://stackoverflow.com/questions/2283494/get-ip-address-of-an-interface-on-linux
#include <stdio.h>
#include <unistd.h>
#include <string.h> /* for strncpy */
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <arpa/inet.h>
int
main()
{
int fd;
struct ifreq ifr;
fd = socket(AF_INET, SOCK_DGRAM, 0);
/* I want to get an IPv4 IP address */
ifr.ifr_addr.sa_family = AF_INET;
/* I want IP address attached to "eth0" */
strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);
ioctl(fd, SIOCGIFADDR, &ifr);
close(fd);
/* display result */
printf("%s\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
return 0;
}
把这个 eth0 改成 wlan0 试一试。
离线
完成了 我用的是这个
QString WifiList::GetCurrwlan0IpAddr(QString str)
{
QString filename = "/V3S/wifi_file/Wifi_Addr";
QFile file(filename);
if(!file.open(QIODevice::ReadOnly))
{
qDebug()<<"!file.open(FileName) error";
return NULL;
}
QTextStream stream(&file);
QString ReadLineStr = stream.readLine();
if(ReadLineStr == NULL)
{
return NULL;
}
QStringList str3= ReadLineStr.split("/",QString::SkipEmptyParts);
QStringList str= str3[0].split("/",QString::SkipEmptyParts);
QStringList str1 = str[0].split(" ",QString::SkipEmptyParts);
return str1[1];*/
QString str1;
QList<QNetworkAddressEntry> list;
QHostAddress addr1;
QNetworkInterface addr = QNetworkInterface::interfaceFromName(str);
list = addr.addressEntries();
if(!list.isEmpty())
{
addr1 = list.at(0).ip();
str1 = addr1.toString();
CurrConnectWifiIP = str1;
//IPAddres = CurrConnectWifiIP;
}
qDebug()<<str1;
return str1;
}
但是有一个问题就是 如何设置有线网络逇优先级是最高啊 用route是设置不管用
离线
# ifconfig wlan0 up
ifconfig: SIOCSIFFLAGS: Operation not permitted
不知道怎么突然就wlan0 就不行了 ,也加载了库
离线
# insmod /usr/lib/r8723bs.ko
[ 952.243349] r8723bs: module is from the staging directory, the quality is unknown, you have been warned.
[ 952.260150] RTL8723BS: module init start
[ 952.264092] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[ 952.271227] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[ 952.290744] pnetdev = c1317800
[ 954.610905] RTL8723BS: rtw_ndev_init(wlan0)
[ 954.715967] RTL8723BS: module init ret =0
加载库出现这样的 没有问题
离线
没用 wpa_supplicant 连接路由器吧?
用了
insmod /usr/lib/r8723bs.ko
ifconfig wlan0 up //这里就出错了 就是那个不允许操作
离线