C#实现ADSL断开链接或者拨号
来源:互联网 发布:淘宝我的购物车打不开 编辑:程序博客网 时间:2024/06/06 16:54
同理,需要换IP,如果是直接拨号上网的话,可以考虑使用这个方法来更换IP,不过效果不是特别好,网络运营商好多都是就给你分配那几个IP地址,用过了就没用了。。
将就用一下吧
首先需要引用
using DotRas;
可以在NuGet里找到,根据系统版本来引用
我是Win10系统,用的Win8版本的 可用
ADSL类
代码:
using DotRas;using System.Collections.ObjectModel;using System.Linq;using System.Net;namespace Base{ /// <summary> /// 断开 /// </summary> public static class Adsl { /// <summary> /// 创建或更新一个PPPOE连接(指定PPPOE名称) /// </summary> static void CreateOrUpdatePPPOE(string updatePPPOEname) { RasDialer dialer = new RasDialer(); RasPhoneBook allUsersPhoneBook = new RasPhoneBook(); string path = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers); allUsersPhoneBook.Open(path); // 如果已经该名称的PPPOE已经存在,则更新这个PPPOE服务器地址 if (allUsersPhoneBook.Entries.Contains(updatePPPOEname)) { allUsersPhoneBook.Entries[updatePPPOEname].PhoneNumber = " "; // 不管当前PPPOE是否连接,服务器地址的更新总能成功,如果正在连接,则需要PPPOE重启后才能起作用 allUsersPhoneBook.Entries[updatePPPOEname].Update(); } // 创建一个新PPPOE else { string adds = string.Empty; ReadOnlyCollection<RasDevice> readOnlyCollection = RasDevice.GetDevices(); // foreach (var col in readOnlyCollection) // { // adds += col.Name + ":" + col.DeviceType.ToString() + "|||"; // } // _log.Info("Devices are : " + adds); // Find the device that will be used to dial the connection. RasDevice device = RasDevice.GetDevices().Where(o => o.DeviceType == RasDeviceType.PPPoE).First(); RasEntry entry = RasEntry.CreateBroadbandEntry(updatePPPOEname, device); //建立宽带连接Entry entry.PhoneNumber = " "; allUsersPhoneBook.Entries.Add(entry); } } /// <summary> /// 断开 宽带连接 /// </summary> public static void Disconnect() { ReadOnlyCollection<RasConnection> conList = RasConnection.GetActiveConnections(); foreach (RasConnection con in conList) { con.HangUp(); } } /// <summary> /// 宽带连接,成功返回true,失败返回 false /// </summary> /// <param name="PPPOEname">宽带连接名称</param> /// <param name="username">宽带账号</param> /// <param name="password">宽带密码</param> /// <returns></returns> public static bool Connect(string PPPOEname, string username, string password, ref string msg) { try { CreateOrUpdatePPPOE(PPPOEname); using (RasDialer dialer = new RasDialer()) { dialer.EntryName = PPPOEname; dialer.AllowUseStoredCredentials = true; dialer.Timeout = 1000; dialer.PhoneBookPath = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers); dialer.Credentials = new NetworkCredential(username, password); dialer.Dial(); return true; } } catch (RasException re) { msg = re.ErrorCode + " " + re.Message; return false; } } }}
阅读全文
0 0
- C#实现ADSL断开链接或者拨号
- C#实现ADSL自动拨号
- ADSL命令拨号和断开
- 使用C#实现ADSL自动拨号
- C# 实现自动ADSL拨号(基于bat)
- adsl批处理 自动断开拨号 换IP
- 用 C# .net framework 实现ADSL自动拨号
- C# ADSL重新连接、拨号
- C#拨号代码(通过adsl拨号)
- C#控制ADSL等拨号连接
- C# 通过ADSL拨号更换IP
- ADSL拨号
- C# 网络营销 - c#可以实现连接和断开宽带的拨号程序吗?
- 不用任何软件实现ADSL自动拨号
- Windows下实现自动ADSL拨号
- C#断开拨号连接的完整类
- C# 连接自动拨号与断开分析
- C# 连接自动拨号与断开分析
- banner
- 头文件
- html表单与页面控件联系
- 8月24日
- Linux上silk微信语音转换成mp3格式
- C#实现ADSL断开链接或者拨号
- 记录android studio学习中脱的一些坑
- 网易笔试题:数组转置问题
- 关于return的理解
- 决策树decision tree+SVM+knn+随机森林+高斯贝叶斯
- Necklace of Beads POJ
- 安卓本地数据库SQLite简单使用
- 装饰模式
- Eclipse环境下如何消除JSTL <c:out>标签出现的”Multiple annotations found at this line“告警