最近在弄一個類似wifi共享精靈、360隨身wifi之類的無線AP分享軟體。
目前的狀態是:可以通過Native WIFI的一些API來實作軟AP的搭建和通過ICS共享網路進行上網。
對比360隨身wifi:360隨身wifi不是通過軟AP來實作的無線分享,360是直接把wifi網路設定為AP來分享網路,見附件圖片。
目前碰到的問題:
1、怎么像360隨身WiFi這樣,把指定的無線物理網卡做成AP來發射無線電信號,并設定指定的網路模式,譬如2.4G或者5G、網路型別(g、n、b)等之類的引數。
WlanHostedNetworkStartUsing和這個函式是開啟軟AP的函式,并不能設定硬AP。
2、怎么設定AP的網卡地址段和DNS等資訊。
3、怎么列出當前接入的計算機串列,并決議出計算機名和IP。
WlanHostedNetworkQueryStatus(m_hWifiHanle, &pWlanHostedNetworkStatus, NULL);
dwNumberOfPeers,這個引數是當前接入網路的個數,使用的時候發現有一些問題,譬如把手機退出網路后,該變數沒有及時重繪。
PeerList[1],這個陣列只有一個元素,存放的接入用戶的Mac地址,但是這個陣列只有一個元素,如果有多個用戶的話,就不好用了。
另外列出當前計算機串列,并決議出計算名和IP的相關方法,沒有找到。
4、怎么對列出的接入的計算機進行限速。
5、隱藏SSID是怎么實作的。


uj5u.com熱心網友回復:
補充一下,我自己的創建的網路,用微軟的手機可以連接上網,但是用蘋果的手機上不了網。
從網站上下載了一個wifi共享精靈,共享精靈的上網方式也是通過軟AP來實作無限共享的,蘋果手機和微軟手機都可以連接網路。
目前我搞不清的幾點:
1、wifi共享精靈沒有把接入互聯網的網卡設定為共享模式,但是確實可以上網。見下面的圖片。
2、wifi共享精靈開啟網路和關閉網路,我這邊抓到的列印資訊。
開啟網路時候的除錯資訊
[9652] state is 1
[9652] start Service txwifinatwfp
[9652] QueryServiceConfig finally failed 122
[9652] Service start pending...
[9652] start Service txwifinatwfp success
[9652] HandleWrapper::Close()
[9652] HandleWrapper::Open()
[9652] E0214 23:47:36.057765 56100 ServiceManager.cpp:83] Service DeviceHealthstopped failed. return0
[9652] E0214 23:47:36.057765 56100 ServiceManager.cpp:83] Service DeviceHealthPluginMgrstopped failed. return0
[9652] E0214 23:47:36.058765 56100 ServiceManager.cpp:93] ChangeServiceStartType <DeviceHealth> failed return 0
[9652] E0214 23:47:36.058765 56100 ServiceManager.cpp:93] ChangeServiceStartType <DeviceHealthPluginMgr> failed return 0
[9652] Set SpeedLimit succeed 10-2F-6B-A5-DE-08, 1, 0, 0
[9652] Set SpeedLimit succeed 9C-F3-87-18-28-08, 1, 0, 0
[9652] [WiFiShare] CHostedNetworkManager::OnHostedNetworkAvailable
[9652] [WiFiShare] CHostedNetworkManager::OnHostedNetworkStarted
[9652] Get Connection HNet_Connection.Guid="{FB76AD68-2073-43DA-A3A3-6AC404BC0CBD}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{C7D54922-18D6-44E7-A32B-141C08AA6670}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{3E8EA633-F99C-4896-A75C-E13FBF0D0959}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{AB9ACFEA-718D-4FDA-BBDC-D91116A4D511}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{B5B3A54D-CB78-4460-80E8-31266994A078}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{C7948432-5DEE-4684-B5B1-1DF1DD05FD7B}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{265963A6-3637-4E6B-ABCA-F30BC1C3177B}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{1CC7A32B-ED61-46FE-ACA6-D35FE411FD06}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{09DA5246-ED98-4865-8F3D-FE82996B41D4}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{5CBA604F-8A9D-4DF8-83F9-96E375A02C0F}" ret:0x0
[9652] Get Connection HNet_Connection.Guid="{68127287-D0CF-4F52-B5A9-ADA4DCFD2ECC}" ret:0x0
[9652] state is 2
[9652] state is 2
[9652] state is 2
[9652] state is 4
[9652] ControlService stop failed 1052
[9652] E0214 23:47:39.535096 56100 ServiceManager.cpp:83] Service SharedAccessstopped failed. return0
[9652] state is 4
[9652] Enter StartDHCP
[9652] DHCP Thread Begin
[9652] DHCP Thread start svc
[9652] CShareDriver::GetPeers return size:0
[9652] [WiFiShare] Thread:68204 CNetworkConnectivity::_ListenProc Enter
[9652] CShareDriver::GetPeers return size:0
[15308] Vector smash protection is enabled.
[9652] [WiFiShare] StationJoin 9C-F3-87-18-28-08
[9652] DHCP:nak 9C-F3-87-18-28-08, req ip:192.168.137.74
[9652] CShareDriver::GetPeers return size:0
[9652] DHCP:offer ip 9C-F3-87-18-28-08, ip:192.168.23.2
[9652] CShareDriver::GetPeers return size:0
[9652] DHCP:offer ip 9C-F3-87-18-28-08, ip:192.168.23.3
[9652] CShareDriver::GetPeers return size:0
[61516] [PDTDebug] received IDebugThreadDestroyEvent2
[9652] CShareDriver::GetPeers return size:0
[9652] DHCP:offer ip 9C-F3-87-18-28-08, ip:192.168.23.2
[9652] CShareDriver::GetPeers return size:0
[9652] DHCP:ack 9C-F3-87-18-28-08, ack ip:192.168.23.2
[9652] CShareDriver::GetPeers return size:0
[9652] [WiFiShare] StationLeave 9C-F3-87-18-28-08
[9652] [WiFiShare] StationJoin 9C-F3-87-18-28-08
[9652] CShareDriver::GetPeers return size:0
[9652] DHCP:ack 9C-F3-87-18-28-08, ack ip:192.168.23.2
[9652] CShareDriver::GetPeers return size:0
[9652] CShareDriver::GetPeers return size:1
[9652] [WiFiShare] mac:9C-F3-87-18-28-08 ip:192.168.23.2 hostname:ihone manufactory:蘋果 ompnay:蘋果 type:
[9652] CShareDriver::GetPeers return size:1
[9652] CShareDriver::GetPeers return size:1
關閉網路時候的除錯資訊
[9652] DHCP Thread End
[9652] [WiFiShare]DHCP Stopped
[9652] [WiFiShare] CNetworkConnectivity::Stop Enter
[9652] [WiFiShare] Thread:68204 CNetworkConnectivity::_ListenProc Leave
[9652] [WiFiShare] CNetworkConnectivity::Stop Leave
[9652] HandleWrapper::Close()
[9652] state is 4
[9652] [WiFiShare]Share Stopped
[9652] [WiFiShare] CHostedNetworkManager::OnHostedNetworkStopped
[9652] [WiFiShare] CHostedNetworkManager::OnHostedNetworkNotAvailable
[9652] [WiFiShare] CHostedNetworkManager::OnHostedNetworkNotAvailable
[9652] [WiFiShare]WiFi Stopped
[9652] E0214 23:48:40.200953 53724 WiFiShareManager.cpp:96] CWiFiShareManager::Stop state wrong 5

uj5u.com熱心網友回復:
對比360隨身wifi,沒有抓到除錯資訊uj5u.com熱心網友回復:
根據自己研究和對比,無線熱點上網主要有兩種模式:一種是nat模式,一種ics共享模式;你使用的應該是后一種,需要設定共享才能上網msdn上資料:https://msdn.microsoft.com/en-us/library/windows/desktop/dd815252(v=vs.85).aspxuj5u.com熱心網友回復:
分享?
uj5u.com熱心網友回復:
大兄弟你這個最后搞得怎么樣了啊轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/57563.html
標籤:網絡編程
