Страницы

Поиск по вопросам

пятница, 20 марта 2020 г.

Как программно соединиться, разъединиться через PPPoE (ADSL)?

#adsl #pppoe #c_sharp


Люди, помогите программно подключиться (на C# желательно, но можно и не на нем) к
интернету по PPPoE (ADSL у меня), шарил по нэту везде либо на мсдн, где нет примеров,
либо dotras.codeplex.com (там VPN или только создание подключения - так и не понял),
дайте, пожалуйста хоть какой-нибудь работающий пример, замучался уже...    


Ответы

Ответ 1



На C# в Windows вот так в общем: соединение: System.Diagnostics.Process.Start("rasdial.exe", "название_соединения логин пароль"); разъединение: System.Diagnostics.Process.Start("rasdial.exe", "название_соединения /DISCONNECT");

Ответ 2



DotRas - это лучшее, что есть для C# для работы с PPPoE. Ссылки по теме: PPPOE Dialer с форума DotRAS Starting a RAS Connection с MSDN (WinCE) Введение в RAS c RSDN

Ответ 3



Набрать с DotRas не проблема. Набирает. Вот только почему-то после таймаута разрывает соединение... Пример того как набрать: RasPhoneBook CurrentUserPhoneBook; RasDialer Dialer = new RasDialer(); Init() { CurrentUserPhoneBook = new RasPhoneBook(); CurrentUserPhoneBook.Open(true); foreach (RasEntry re in CurrentUserPhoneBook.Entries) { if (re.Device.DeviceType.Equals(RasDeviceType.PPPoE, StringComparison.InvariantCultureIgnoreCase)) { //сохрани в лист например все пппое записи myPPPoEConnectionList.Add(re); } } } private void Dial(RasEntry re) { // This button will be used to dial the connection. this.Dialer.EntryName = re.Name; this.Dialer.PhoneBookPath = CurrentUserPhoneBook.Path; this.Dialer.Timeout = 20000; this.Dialer.AllowUseStoredCredentials = true; try { // NOTE: The entry MUST be in the phone book before the connection can be dialed. // Begin dialing the connection; this will raise events from the dialer instance. this.pppoeConnectionHandle = this.Dialer.DialAsync(); } catch (Exception ex) { //LogWriteLine(ex.ToString()); } }

Ответ 4



Копайте в сторону RAS. Вот, например, какое-то обсуждение: NET RAS/RASDIAL Structures

Ответ 5



Столкнулся с этой проблемой. Пришлось написать утилиту контроля. Подходит для любого языка. При запуске с параметрами передает в окно, с указанным handle состояние подключения (SendMessage(Hwnd,WM_MBUTTONDOWN,MK_MBUTTON,sValue). А через буфер обмена и IP адрес. Могу поделиться - multisoft@rambler.ru

Комментариев нет:

Отправить комментарий