📄 linux.cs
字号:
using System.Diagnostics ;using System;using System.Collections;using System.Text.RegularExpressions;/// Inspired by wifi-radar...public class Linux:OS { public Regex essid_pattern, address_pattern, signal_pattern, chan_pattern, ratio_pattern, encript_pattern; public Linux(){ address_pattern = new Regex(@"\s(?<mac>(\w\w:\w\w:\w\w:\w\w:\w\w:\w\w))"); essid_pattern = new Regex("ESSID.*\"(?<ssid>(\\w+))\""); chan_pattern = new Regex(@".*Channel\s(?<chan>(\d+))"); ratio_pattern = new Regex(@"Bit Rate:(?<ratio>(\d+)).*Mb.s"); signal_pattern = new Regex(@"Quality.(?<signal>(\d+))/"); encript_pattern = new Regex(@"Encryption key.(?<encript>(.+))\n"); } public override string[] WirelessDevices(){ string[] All = new string[3] {"wlan0","eth0", "ath0"}; return All ; } public override ArrayList WirelessNetworks(){ ArrayList list = new ArrayList(); Regex sep = new Regex("- Address:"); foreach (string chunck in sep.Split(Scan())){ Match match = essid_pattern.Match(chunck); if (match.Length>0){ //we got something usefull.... string[] data = new string[6]; data[0] = match.Groups["ssid"].ToString(); data[1] = address_pattern.Match(chunck).Groups["mac"].ToString(); data[2] = chan_pattern.Match(chunck).Groups["chan"].ToString(); //The last match is the maximus ratio.. MatchCollection ratiomatches = ratio_pattern.Matches(chunck); string ratio="1" ; foreach (Match ratiomatch in ratiomatches){ ratio = ratiomatch.Groups["ratio"].ToString(); } data[3] = ratio; data[4] = signal_pattern.Match(chunck).Groups["signal"].ToString(); if (encript_pattern.Match(chunck).Groups["encript"].ToString()=="on") data[5] = "EP"; else data[5] = "E"; Network net = new Network(data); if (net!=null) list.Add(net); } } return list; } /* public string Scan(){ return "# /usr/sbin/iwlist eth1 scanning\neth1 Scan completed :\n Cell 01 - Address: XX:XX:XX:XX:XX:XX\n ESSID:\"XXXaXXX\"\n Mode:Master\n Frequency:2.462GHz (Channel 11)\n Bit Rate:1Mb/s\n Bit Rate:2Mb/s\n Bit Rate:5.5Mb/s\n Bit Rate:11Mb/s\n Bit Rate:18Mb/s\n Bit Rate:24Mb/s\n Bit Rate:36Mb/s\n Bit Rate:54Mb/s\n Quality=23/100 Signal level=-75 dBm Noise level=-98 dBm\n Encryption key:on\n Cell 02 - Address: XX:XX:XX:XX:XX:XX\n ESSID:\"XXXXXX\"\n Mode:Master\n Frequency:2.462GHz (Channel 11)\n Bit Rate:1Mb/s\n Bit Rate:2Mb/s\n Bit Rate:5.5Mb/s\n Bit Rate:11Mb/s\n Bit Rate:18Mb/s\n Bit Rate:24Mb/s\n Bit Rate:36Mb/s\n Bit Rate:54Mb/s\n Quality=14/100 Signal level=-84 dBm Noise level=-98 dBm\n Encryption key:off\n"; } public string Scan(){ return "wlan0 Scan completed :\n Cell 01 - Address: 00:0D:88:43:0C:EB\n ESSID:\"casa\"\n Protocol:IEEE 802.11b\n Mode:Managed\n Frequency:2.437 GHz (Channel 6)\n Quality:0/100 Signal level:-37 dBm Noise\nlevel:-256 dBm\n Encryption key:on\n Bit Rate:1 Mb/s\n Bit Rate:2 Mb/s\n Bit Rate:5.5 Mb/s\n Bit Rate:11 Mb/s\n Extra:bcn_int=100\n Extra:atim=0\n"; }*/ public string Scan(){ Process p = new Process(); p.StartInfo.FileName = "iwlist"; p.StartInfo.Arguments = String.Format("{0} scan",SelectedDevice); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.Start(); string outs = p.StandardOutput.ReadToEnd(); p.WaitForExit(); p.Close(); return outs; } public override void DHCP(string ssid, string wep){ Execute("route delete default gw"); Execute(String.Format("ifconfig {0} up",SelectedDevice)); Execute(String.Format("iwconfig {0} essid {1}",SelectedDevice, ssid)); Execute(String.Format("iwconfig {0} key {1}",SelectedDevice,wep)); Execute("killall dhcpcd"); System.Threading.Thread.Sleep(200); Execute(String.Format("dhcpcd {0}",SelectedDevice)); } public override void StaticIP(string ssid,string ip,string netmask,string wep,string gateway){ Execute("route delete default gw"); Execute(String.Format("ifconfig {0} up",SelectedDevice)); Execute(String.Format("iwconfig {0} essid {1}",SelectedDevice, ssid)); if (wep!=null) Execute(String.Format("iwconfig {0} key {1}",SelectedDevice,wep)); Execute(String.Format("ifconfig {0} {1} netmask {2}",SelectedDevice, ip, netmask) ); System.Threading.Thread.Sleep(200); Execute(String.Format("route add default gw {0}",gateway)); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -