我们有几台设备使用class UserView: UIStackView {
var name: String?
var image: UIImage? // OR var imageName: String?
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
private func setup() {
axis = .vertical
let imageView = UIImageView(image: image)
let nameLabel = UILabel()
nameLabel.text = name
addArrangedSubview(imageView)
addArrangedSubview(nameLabel)
}
}
和wlan1
创建访问点。问题在于,所有这些设备都为hostapd
配备了相同的MAC地址,这会转换所有具有相同BSSID的设备,因此,当我们有多个设备在同一范围内时,我们将无法连接至它们中的任何一个。我们尝试了几种更改BSSID的方法,它们都对wlan1
输出中显示的HWaddr
产生了影响,但是当我们从客户端扫描网络时,看不到进行此更改,但改为使用所有设备的原始BSSID。
我们可以看到此ifconfig
接口的MAC地址存储在wlan1
中,该文件是一个只读文件,内容为:/sys/class/net/wlan1/address
,这是我们的BSSID查看所有设备。
然后的问题是,我们如何才能更改AP的BSSID,这样我们才能看到对客户端的影响,从而导致具有不同BSSID的不同网络,从而可以在它们都处于范围内时建立与不同设备的连接?
02:03:7f:d7:00:01
/etc/hostapd_wlan1.conf
使用ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
interface=wlan1
driver=nl80211
# WPA2-AES encryption
bssid=DC:EC:BE:91:EA:F1
ssid=ap-wlan1-ccee
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_passphrase=password-wpa2aes
# IEEE 802.11ac
hw_mode=a
channel=36
ieee80211ac=1
ieee80211n=1
与/usr/sbin/hostapd /etc/hostapd_wlan1.conf
一起运行
SysVinit
wlan1 Link encap:Ethernet HWaddr DC:EC:BE:91:EA:F1
inet addr:192.168.46.30 Bcast:192.168.46.255 Mask:255.255.255.0
inet6 addr: fe80::deec:beff:fe91:eaf1%lo/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1016 errors:0 dropped:0 overruns:0 frame:0
TX packets:977 errors:0 dropped:7 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:134304 (131.1 KiB) TX bytes:135467 (132.2 KiB)
ip link set wlan1 down
ip link set dev wlan1 address DC:EC:BE:91:EA:F1
ip link set wlan1 up
答案 0 :(得分:0)
更改.conf是没有用的,因为每次重新启动时,新的conf都会替换它。
在
/lib/netifd/wireless/mac80211.sh
mac80211_prepare_vif()
尝试更改 $ macaddr ,这是最终的bssid。
希望这会有所帮助。