我想知道有没有办法通过使用C文件连接到wifi AP?目前我使用此代码
system("sudo iwconfig wlan0 essid home")
但我希望用户输入ssid。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
您可以提示用户输入该SSID,然后构建将由system()
运行的命令:
char ssid[100];
char cmd[200];
printf("Which AP you want to connect: ");
scanf(" %100[0-9a-zA-Z_-]", ssid);
snprintf(cmd, 200, "sudo iwconfig wlan0 essid %s", ssid);
system(cmd);
答案 1 :(得分:0)
如果您使用wpa_supplicant
,则可以按照以下步骤使用以下设置连接到无线网络:
检查传递给wpa_supplicant的配置文件位置。
ps -eaf | grep wpa *
您可以从here获取有关conf文件的详细信息。假设您的配置文件位于 /usr/etc/wifi.conf 位置。 通过根据文件末尾的网络配置附加网络信息,从c代码添加网络详细信息,如下所示:
network={
ssid="simple"
psk="very secret passphrase"
}
对于不同的网络类型,上述语法可能会发生变化。关闭配置文件后,发出reconfigure
命令&它会将您连接到无线网络。
您还可以使用wpa_cli
命令行工具来实现上述目的。有关wpa_cli的更多信息,请查看here。