Создайте широкополосное соединение 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();
Я надеюсь, что это отвечает на ваш вопрос!
Изменить: я хотел бы добавить, если соединения уже существуют на машине, которая тестируется, вы можете просто пропустить прямо к шагу два и набрать их.