⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux.cs

📁 无线网卡接口编程源码
💻 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 + -