在C#应用程序中创建宽带pppoe拨号连接

时间:2013-03-14 06:30:27

标签: c# ras dial-up

我是一名开发应用程序的学生,可帮助用户检查一组拨号连接的互联网连接速度。

string[,] connections = new string[5, 2] { { "username", "password" }, { "username", "password" },{ "username", "password" },{ "username", "password" },{ "username", "password" } };

连接存储在上面列出的数组中,我正在寻找最简单的方法来拨打它们,并通过从远程服务器下载文件来测试每个连接的速度。 请问专家能否帮助我找到一个好的解决方案?

谢谢。

注意

我已经尝试过DOTRas,我正在尝试使用,但无法确切地弄清楚如何建立连接。

RasEntry.CreateDialUpEntry

1 个答案:

答案 0 :(得分:5)

DotRasWindows RAS API的包装器,它使用电话簿文件存储如何连接到远程RAS服务器的信息,然后是实际拨打该条目的命令。 SDK中包含的示例虽然仅演示了如何进行VPN连接,但可以将这些相同的原则应用于拨号连接,而无需花费太多精力。唯一的区别是在创建条目时调用CreateDialUpEntry而不是CreateVpnEntry。

第1步:创建条目

您需要先创建条目并将其添加到电话簿中,以便拨号操作可以在以后找到它:

string path = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.User);
using (RasPhoneBook pbk = new RasPhoneBook()) 
{
    pbk.Open(path);
    // Find the device that will be used to dial the connection.
    RasDevice device = RasDevice.GetDevices().Where(o => o.Name == "Your Modem Name" && o.DeviceType == RasDeviceType.Modem).First();

    RasEntry entry = RasEntry.CreateDialUpEntry("Your Entry", "5555551234", device);
    // Configure any options for your entry here via entry.Options
    pbk.Entries.Add(entry);
}

这将在电话簿中输入名为“您的条目”的单个条目和电话号码“555-555-1234”。请记住,您需要知道要在条目上配置的设置,以确保连接成功。

第2步:拨打条目

using (RasDialer dialer = new RasDialer()) 
{
    dialer.EntryName = "Your Entry";
    dialer.PhoneBookPath = path;
    dialer.Credentials = new NetworkCredential("User", "Password");
    dialer.Dial();
}

这将使用指定的凭据建立与“您的条目”的连接。

第3步:断开条目

要断开连接,您需要找到有效连接并在其上调用HangUp。

RasConnection conn = RasConnection.GetActiveConnections().Where(o => o.Name == "Your Entry").First();
conn.HangUp();

我希望能回答你的问题!

编辑:我想补充一点,如果正在测试的机器上已存在连接,您可以直接跳到第二步并拨打它们。