Создайте широкополосное соединение ppoe dialup в приложении C#

Я студент, занимающийся разработкой приложения, которое помогает пользователю проверять скорость интернет-соединения на наборе модемных соединений.

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

Соединения хранятся в массиве, как указано выше, я ищу самый простой способ набрать их и проверить скорость каждого соединения, загрузив файл с удаленного сервера. Могут ли эксперты помочь мне с хорошим решением?

Спасибо.

ЗАМЕТКИ

Я уже попробовал DOTRas, я пытаюсь использовать, но не могу точно понять, как установить соединение.

RasEntry.CreateDialUpEntry

1 ответ

Решение

DotRas - это оболочка для Windows 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();

Я надеюсь, что это отвечает на ваш вопрос!

Изменить: я хотел бы добавить, если соединения уже существуют на машине, которая тестируется, вы можете просто пропустить прямо к шагу два и набрать их.

Другие вопросы по тегам