UNPKG

meshcentral

Version:

Web based remote computer management server

1 lines 2.88 kB
function _Scan(){var e=this.Marshal.CreatePointer(),e=(this.Native.WlanEnumInterfaces(this.Handle,0,e),e.Deref().Deref(0,4).toBuffer().readUInt32LE(0),e.Deref().Deref(8,532));e.Deref(16,512).AnsiString;switch(e.Deref(528,4).toBuffer().readUInt32LE(0)){case 0:0;break;case 1:0;break;case 2:0;break;case 3:0;break;case 4:0;break;case 5:0;break;case 6:0;break;case 7:0;break;default:0}e=e.Deref(0,16);return 0==this.Native.WlanScan(this.Handle,e,0,0,0).Val}function AccessPoint(e,t,r,a){this.ssid=e,this.bssid=t,this.rssi=r,this.lq=a}function OnNotify(e){var t=e.Deref(0,4).toBuffer().readUInt32LE(0),r=e.Deref(4,4).toBuffer().readUInt32LE(0),e=e.Deref(8,16);if(8&t&&7==r){var a=this.Parent.Marshal.CreatePointer();if(0==this.Parent.Native.GetBSSList(this.Parent.Handle,e,0,3,0,0,a).Val){a.Deref().Deref(0,4).toBuffer().readUInt32LE(0);var s=a.Deref().Deref(4,4).toBuffer().readUInt32LE(0);for(i=0;i<s;++i){var n=a.Deref().Deref(8+360*i,360),f=n.Deref(4,32).String.trim(),h=n.Deref(40,6).HexString2,o=n.Deref(56,4).toBuffer().readUInt32LE(0),n=n.Deref(60,4).toBuffer().readUInt32LE(0);this.Parent.emit("Scan",new AccessPoint(f,h,o,n))}}}}function Wireless(){var e=require("events").inherits(this),t=(this.Marshal=require("_GenericMarshal"),this.Native=this.Marshal.CreateNativeProxy("wlanapi.dll"),this.Native.CreateMethod("WlanOpenHandle"),this.Native.CreateMethod("WlanGetNetworkBssList","GetBSSList"),this.Native.CreateMethod("WlanRegisterNotification"),this.Native.CreateMethod("WlanEnumInterfaces"),this.Native.CreateMethod("WlanScan"),this.Native.CreateMethod("WlanQueryInterface"),this.Marshal.CreatePointer()),r=this.Marshal.CreatePointer(),t=(this.Native.WlanOpenHandle(2,0,t,r),this.Handle=r.Deref(),this._NOTIFY_PROXY_OBJECT=this.Marshal.CreateCallbackProxy(OnNotify,2),(this._NOTIFY_PROXY_OBJECT.Parent=this).Marshal.CreatePointer());this.Native.WlanRegisterNotification(this.Handle,65535,0,this._NOTIFY_PROXY_OBJECT.Callback,this._NOTIFY_PROXY_OBJECT.State,0,t);return e.createEvent("Scan"),e.addMethod("Scan",_Scan),this.GetConnectedNetwork=function(){var e=this.Marshal.CreatePointer(),e=(console.log("Success = "+this.Native.WlanEnumInterfaces(this.Handle,0,e).Val),e.Deref().Deref(0,4).toBuffer().readUInt32LE(0),e.Deref().Deref(8,532));e.Deref(16,512).AnsiString,e.Deref(528,4).toBuffer().readUInt32LE(0);if(1==e.Deref(528,4).toBuffer().readUInt32LE(0)){var t=this.Marshal.CreatePointer(),r=this.Marshal.CreatePointer(),a=this.Marshal.CreatePointer(),e=e.Deref(0,16);if(0==this.Native.WlanQueryInterface(this.Handle,e,7,0,t,r,a).Val)return new AccessPoint(r.Deref().Deref(524,32).String,r.Deref().Deref(560,6).HexString,0,r.Deref().Deref(576,4).toBuffer().readUInt32LE(0))}throw"GetConnectedNetworks: FAILED (not associated to a network)"},this}AccessPoint.prototype.toString=function(){return this.ssid+" ["+this.bssid+"]: "+this.lq},module.exports=new Wireless