有些场合,为了避免服务对用户IP的限制或者为了用户的方便,可以通过代码实现自动化的拨号或者断网操作,通过DotRAS组件,可以非常方便的实现如ADSL、VPN等拨号以及相关操作,DotRAS组件是专门提供这样远程访问服务的模块,本文介绍如何通过应用该组件,实现ADSL网络的拨号、断网、获取用户IP的操作。

DotRAS组件的项目地址是:http://dotras.codeplex.com/

先看看Demo的界面效果

具体的代码逻辑,是通过列出电话簿里面的拨号连接,设置是通过账户密码或者默认账户设置信息,进行拨号即可,使用DotRas组件,使得在DotNet中操作这些功能非常方便,代码贴上如下所示:

///<summary>
        ///测试拨号连接
        ///</summary>
privatevoidbtnTest_Click(objectsender, EventArgs e)
        {
            try
            {
                RasDialer dialer =newRasDialer();
                dialer.EntryName ="联通网络";
                dialer.PhoneNumber ="";
                dialer.AllowUseStoredCredentials =true;
                dialer.PhoneBookPath =RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers);
                dialer.Timeout =1000;
                dialer.Dial();

Thread.Sleep(100);
                this.LoadConnections();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

/// <summary>
        /// 断开网络连接
        /// </summary>
        private void btnLogout_Click(object sender, EventArgs e)
        {
            ReadOnlyCollection<RasConnection> conList = RasConnection.GetActiveConnections();
            foreach (RasConnection con in conList)
            {
                con.HangUp();
            }

this.LoadConnections();
        }

private void Form1_Load(object sender, EventArgs e)
        {
             this.LoadConnections();
        }

/// <summary>
        /// 显示活动的连接
        /// </summary>
        private void LoadConnections()
        {
            this.comboBox1.Items.Clear();
            this.comboBox1.Items.Add(new ComboBoxItem("请选择一个链接...", null));
            foreach (RasConnection connection in RasConnection.GetActiveConnections())
            {
                this.comboBox1.Items.Add(new ComboBoxItem(connection.EntryName, connection.EntryId));
            }

this.comboBox1.SelectedIndex = 0;
        }

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.GetAddressButton.Enabled = this.comboBox1.SelectedIndex > 0;
        }

/// <summary>
        /// 获取IP地址信息
        /// </summary>
        private void GetAddressButton_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            foreach (RasConnection connection in RasConnection.GetActiveConnections())
            {
                if (connection.EntryId == (Guid)((ComboBoxItem)this.comboBox1.SelectedItem).Value)
                {
                    RasIPInfo ipAddresses = (RasIPInfo)connection.GetProjectionInfo(RasProjectionType.IP);
                    if (ipAddresses != null)
                    {
                        sb.AppendFormat("ClientIP:{0}\r\n", ipAddresses.IPAddress.ToString());
                        sb.AppendFormat("ServerIP:{0}\r\n", ipAddresses.ServerIPAddress.ToString());
                    }
                }
                sb.AppendLine();
            }
            MessageBox.Show(sb.ToString());
        }

通过以上的代码,可以非常方便实现宽带的拨号连接和获取IP等设置,不过断网之后,一般的IP还是和原来一样,这个可能和服务器的缓存有关系,为了实现拨号后,本地为不同的IP设置,需要特别的处理才可以。

主要研究技术:代码生成工具、Visio二次开发、送水管理软件等共享软件开发

转载请注明出处:
撰写人:伍华聪  http://www.iqidi.com

不错,不过,原作者,没有说,怎么让每次拔号之号,IP不一样。

转载于:https://www.cnblogs.com/zqonline/archive/2010/09/07/1820198.html

利用DotRAS组件,实现ADSL的自动拨号断网自动化操作[转]相关推荐

  1. 利用.pbk来实现ADSL开机自动拨号

     利用.pbk来实现ADSL开机自动拨号  当你新建拨号连接或者VPN连接之后在你的电脑里会创建一个.pbk的文件 这个.pbk的文件可以说是一个集合,将你电脑的所有连接都保存在一起. 同时你还可以将 ...

  2. windows 任务管理器实现拨号断网自动重连

    windows 任务管理器实现拨号断网自动重连 打开任务管理器 测试任务执行情况 打开任务管理器 右键计算机->管理 任务计划程序->创建基本任务 名称和描述方便自己记忆即可 完成如图点击 ...

  3. ADSL开机自动拨号

    先双击打开宽带连接---属性---选项---去掉   "提示名称.密码证书等"   前面的勾即 将以下代码复制.粘贴到记事本另存为" 开机自动拨号.reg" 后 ...

  4. 电信ADSL+路由器自动拨号设置详细步骤

    1. ADSL通过电话线接到电话线插孔上(电话线) 2. 路由器通过它自己的WLAN端口连接到ADSL上(网线) 3. 用网线将路由器和电脑连接好(网线) 4. 修改路由器的WLAN设置: 4.1. ...

  5. ADSL宽带经常掉线断网故障处理方法

    故障一:路由器拨号经常掉线 PPPoE虚拟拨号用户,使用路由器拨号.使用过程中经常掉线,通常15分钟左右掉线一次,掉线没有规律.移除路由器,使用WINdows XP操作系统自带的拨号软件上网,故障依旧 ...

  6. 断网安装是什么意思_关于ADSL宽带断网掉线的几个处理办法

    ADSL算是一种古老的上网接口方式了,网络对于ADSL定义的内容很多,比较有价值的只有这一句内容:ADSL是一种异步传输模式(ATM).通常ADSL在不影响正常电话通信的情况下可以提供最高3.5Mbp ...

  7. java调用bat脚本实现pppoe拨号_使用 DOS 批处理命令实现宽带 ADSL 开机自动连接

    利用 Windows 的自带命令实现宽带自动连接 笔者使用的是云南文山州网通的全包月宽带,每次开机后第一件事就是连接网络,由于云南文山州网通拨号程序没有提供自动拨号选项,因此必须手工输入用户名和密码, ...

  8. linux网卡设置adsl上网,Linux下设置ADSL自动拨号上网

    前段时间下载了红帽的linux,版本为redhat 9.0,整整刻了三张CD.最初是为了体验一下linux下QQ聊天软件的功能,最后因内核太低(官方推荐内核在2.6以上,我下载的版本是2.4)而告终. ...

  9. 教你如何让电脑的ADSL宽带连接开机自动拨号

    教你如何让电脑的ADSL宽带连接开机自动拨号. 事情是这样的,因为黯神伤情很不习惯ADSL每次开机都要自己拨号. 那么能不能让ADSL开机就自己拨号呢?答案当然是肯定的.(以下内容高手跳过) 黯神伤情 ...

最新文章

  1. 小码哥iOS学习笔记第八天: block的底层结构
  2. 关于移动,联通,电信的区分。
  3. Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?
  4. android事件分发 入口(dispatchTouchEvent)
  5. jade模板引擎修改为ejs模板引擎
  6. linux查看进程运行日志文件,【Linux】常用指令、ps查看进程、kill杀进程、启动停止tomcat命令、查看日志、查看端口、find查找文件...
  7. FCN:Fully Convlutional Networks for semantic segmentation要点
  8. php之类重写父类的构造方法,php实现parent调用父类的构造方法与被覆写的方法
  9. Promise 的 9 个提示
  10. python获取两个时间间隔的天数
  11. 云科技网络验证源码_APK云科技网络验证-APK一键加网络验证一键加弹窗引流
  12. [历朝通俗演义-蔡东藩-前汉]第007回 寻生路徐市垦荒 从逆谋李斯矫诏
  13. Firefox 和 Firefox Nightly 同步服务:切换国内和国际服务器的方法
  14. c语言bmp位图读入,c语言 bmp位图差分
  15. Android 5.x浏览器webView或者qqX5崩溃,Resources$NotFoundException:String resource ID #0x2040003
  16. PEI表面修饰CNTs步骤及原理
  17. 小米会成为三星没落的因素吗?
  18. react:制作新页面
  19. 12、MTU的概念,什么是路径MTU? MTU发现机制,TraceRoute(了解)
  20. python e指数函数,常用的e指数代码

热门文章

  1. java基础—对一个字符串中的数值进行从小到大的排序
  2. 【算法】—— 相邻两数的最大差值
  3. 005木桶缩放(比例非原始)
  4. 从链接上获取参数值, location.href上获取参数
  5. InfoPath的常见问题---连接外部数据源提示
  6. sqlplus 调试存储过程
  7. C++类中的访问权限问题---public/protected/private
  8. [Vue.js] 路由 -- 基于vue-router的案例--后台管理
  9. 第一章:Understanding web performance-理解web性能
  10. EDM邮件营销之如何制作模板