当前位置:编程学习 > C#/ASP.NET >>

C#如何操作USB无线网卡??求教。。。

比如获取状态、连接、断开、信号强度等 --------------------编程问答-------------------- 顶起!!!!!!!!!!! --------------------编程问答-------------------- 用native wifi sdk
怎么不用C++? --------------------编程问答-------------------- 已实现部分功能,但连接不安全网络(未设密码)用WlanConnect怎么都连不上,求解!!!,坐等高人啊 --------------------编程问答-------------------- 连接安全网络的时候能实现自动带密码连接吗??目前也没找到好的办法,求高手啊!! --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 下载这个:http://managedwifi.codeplex.com/
例子:

namespace WifiExample
{
using NativeWifi;
using System;
using System.Text;

internal class Program
{
/// <summary>
/// Converts a 802.11 SSID to a string.
/// </summary>
private static string GetStringForSSID(Wlan.Dot11Ssid ssid)
{
return Encoding.ASCII.GetString(ssid.SSID, 0, (int) ssid.SSIDLength);
}

private static void Main(string[] args)
{
WlanClient client = new WlanClient();
foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
// Lists all networks with WEP security
Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
foreach (Wlan.WlanAvailableNetwork network in networks)
{
if (network.dot11DefaultCipherAlgorithm == Wlan.Dot11CipherAlgorithm.WEP)
{
Console.WriteLine("Found WEP network with SSID {0}.", GetStringForSSID(network.dot11Ssid));
}
}

// Retrieves XML configurations of existing profiles.
// This can assist you in constructing your own XML configuration
// (that is, it will give you an example to follow).
foreach (Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles())
{
string name = profileInfo.profileName; // this is typically the network's SSID
string xml = wlanIface.GetProfileXml(profileInfo.profileName);
}

// Connects to a known network with WEP security
string profileName = "Cheesecake"; // 改成要连接的无线网的 SSID
string key = "hello"; // 改成连接密码
string mac = wlanIface.NetworkInterface.GetPhysicalAddress().ToString();
string profileXml = string.Format(@"<?xml version=""1.0""?>
<WLANProfile xmlns=""http://www.microsoft.com/networking/WLAN/profile/v1"">
<name>{0}</name>
<SSIDConfig>
<SSID>
<hex>{1}</hex>
<name>{0}</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<MSM>
<security>
<authEncryption>
<authentication>open</authentication>
<encryption>WEP</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>networkKey</keyType>
<protected>false</protected>
<keyMaterial>{2}</keyMaterial>
</sharedKey>
<keyIndex>0</keyIndex>
</security>
</MSM>
</WLANProfile>", profileName, mac, key);
wlanIface.SetProfile(Wlan.WlanProfileFlags.AllUser, profileXml, true);
wlanIface.Connect(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName);
}
}
}
}
--------------------编程问答-------------------- 验证了一下你的代码,有点问题,报“网络连接配置文件已损坏。”异常!!
<keyMaterial>{2}</keyMaterial>这个地方的密码应该用加过密之后的值吧
--------------------编程问答-------------------- 比如类似中国电信ChinaNet这种开放似的网络怎么连接???求解。。 --------------------编程问答-------------------- 中间这一段:
 foreach (Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles())
                {
                    string name = profileInfo.profileName; // this is typically the network's SSID
                    string xml = wlanIface.GetProfileXml(profileInfo.profileName);
                }
是系统中已有的xml配置,你用Console.WriteLine或调试看看这些xml配置是怎样的,系统中的配置是肯定正确的,然后你参考它改改。 --------------------编程问答-------------------- 开放的网络,象ChinaNet这种,是没有配置文件的 --------------------编程问答-------------------- 我跟踪过,只得到了使用过的加密无线网络 --------------------编程问答-------------------- 顶起!!!!!!!!!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,