たとえば、 wi2geoまたはskyhookwirelessサービスと連携して、最も近いwi-fiネットワークの地理座標を決定するために使用できます 。
NTカーネルを備えたすべてのバージョンのWindowsで動作します(少なくとも動作するはずです)。 XP SP3およびVistaでテスト済み。 Vista +では、Wi-Fi Native APIが使用されます。XP以前では、NDISを介してwi-fiカードドライバーをポーリングします。
レビューとバグ報告を喜んでいたします。
Cソースが添付されています。ライセンス:BSDライク。
UPD:改訂の申請が受け入れられます。
UPD2:なぜそのようなことが必要なのか疑問に思っている人のために:このコードを使用して、wi2geoサービス、コンソール/ VBS(run.batを実行します;この例ではテストAPIキーを使用します自分のものに置き換えてください)。
UPD3:Pythonでwi-fiネットワークのリストを取得するモジュールを追加しました
UPD4:最初の例と同様の別の例ですが、測位にはskyhookwirelessサービスが使用されます。 この例にはテストAPIキーも含まれていることに注意してください。キーを取得し、使用する前にソースで更新することを忘れないでください。
UPD5:スキャナーとサンプルのバグを修正しました。これは、10を超えるネットワークが検出された場合にスキャナーが機能しなかったためです、おかげで、deniamnet :)
UPD6:尊敬されるwi2geo管理! サービスのいくつかのアイデア:
- ラボに追加してください。 ログアウトボタン-別のユーザーとしてログインする場合は、ブラウザーを再起動するか、Cookieをクリアする必要があります-これは間違っています。
- ホームアクセスポイントの座標を入力できる十分な形式がありません-lat、lon、macフィールド、送信ボタン。 また、都市、通り、家、建物、および送信、住所は、YandexまたはGoogleジオコーダーを介して座標に変換できます。
- また、大量のフィルポイント用のAPIを作成することも素晴らしいでしょう。 GPSとwi-fiを搭載したデバイスで動作するクライアントプログラムを作成し、途中でポイントを収集する可能性があると仮定します(gpsを持たないデバイスでは、サービス)。 今、私は彼女にレポートを送信するように強制し、それらをあなたのサービスに手動でアップロードしなければなりません。 不便。
- マウスホイールを使用してラボでマップスケーリングを有効
にすると便利です(load_map_all()関数に1行だけを追加する必要があります-map.enableScrollWheelZoom();)。