dotras是一个提供远程访问服务的组件,使用它可以方便的

进行宽带拨号连接

由于不同的系统中dotras调用的底层api可能不同,所以使用时要根据不同的系统使用不同的dotras。

dotras目前有以下几个包,在nuget中可以找到。每个包都有对应的系统

  • WIN8 - Windows 8, Windows 8 Server
  • WIN7 - Windows 7, Windows 2008 Server R2 (aka Windows 7 Server)
  • WIN2K8 - Windows Vista, Windows 2008 Server
  • WINXP - Windows XP, Windows 2003 Server
  • WIN2K - Windows 2000, Windows 2000 Server (baseline)

详细说明可以参照dotras doucument

以下是使用dotras进行的简单实现ADSL拨号连接。

  1. /// <summary>
  2. /// 连接
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void button1_Click(object sender, EventArgs e)
  7. {
  8. try
  9. {
  10. RasDialer dialer = new RasDialer();
  11. dialer.EntryName = "宽带连接"; //宽带连接的名字
  12. dialer.AllowUseStoredCredentials = true;
  13. dialer.PhoneBookPath = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers);
  14. dialer.Credentials = new System.Net.NetworkCredential("宽带账户", "宽带密码");
  15. dialer.Timeout = 1000;
  16. MessageBox.Show(dialer.PhoneBookPath);
  17. dialer.Dial();
  18. Thread.Sleep(100);
  19. var conns = RasConnection.GetActiveConnections();//获取当前所有活动连接
  20. var conn = conns.First();
  21. RasIPInfo ipAddresses = (RasIPInfo)conn.GetProjectionInfo(RasProjectionType.IP);
  22. MessageBox.Show(ipAddresses.IPAddress.ToString());
  23. }
  24. catch (Exception ex)
  25. {
  26. MessageBox.Show(ex.ToString());
  27. }
  28. }
  29. /// <summary>
  30. /// 断开连接
  31. /// </summary>
  32. /// <param name="sender"></param>
  33. /// <param name="e"></param>
  34. private void button2_Click(object sender, EventArgs e)
  35. {
  36. try
  37. {
  38. var conns = RasConnection.GetActiveConnections();//获取当前所有活动连接
  39. var conn = conns.FirstOrDefault(o => o.EntryName == "宽带连接");
  40. if (conn != null)
  41. {
  42. conn.HangUp();
  43. MessageBox.Show("断开连接成功");
  44. }
  45. }
  46. catch (Exception ex)
  47. {
  48. MessageBox.Show(ex.Message);
  49. }
  50. }
  51. /// <summary>
  52. /// 获取IP
  53. /// </summary>
  54. /// <param name="sender"></param>
  55. /// <param name="e"></param>
  56. private void button3_Click(object sender, EventArgs e)
  57. {
  58. var conns = RasConnection.GetActiveConnections();//获取当前所有活动连接
  59. var conn = conns.FirstOrDefault(o=>o.EntryName== "宽带连接");
  60. if (conn != null)
  61. {
  62. sIPInfo ipAddresses = (RasIPInfo)conn.GetProjectionInfo(RasProjectionType.IP);
  63. MessageBox.Show(ipAddresses.IPAddress.ToString());
  64. }
  65. }

备注:

rasdial命令也可以进行拨号操作

ADSL拨号连接的更多相关文章

  1. NT平台ADSL拨号连接密码恢复原理

    NT平台拨号连接密码恢复原理 创建时间:2004-11-08 更新时间:2004-11-12文章属性:原创文章提交:eyas (eyas_at_xfocus.org)NT平台拨号连接密码恢复原理Aut ...

  2. centos ADSL 拨号上网设置

    下面主要介绍一下,在CentOS命令行环境下如何配置 ADSL 联网: 1.确保安装了网卡并能正常运行,使用命令查看一下网卡状态: [root@localhost simon]# /sbin/ifco ...

  3. 利用ADSL拨号上网方式如何搭建服务器

    序:搭建服务器需要两个条件硬件服务器和固定公网IP,随便一台个人电脑都可以作为硬件服务器,就剩下一个问题,如何获得一个固定公网IP. 第一章 扫盲:ADSL拨号上网方式,本地IP与公网IP的区别 一. ...

  4. Ubuntu ADSL拨号上网

    一直在家用接ADSL的无线wifi上网,最近用了很久的NetGear无线路由器被我毁了,只好暂时用有线了.在Ubuntu Linux下也可直接使用ADSL拨号上网. 1.连接设备 这没什么可多说的,一 ...

  5. Linux操作系统上ADSL拨号上网的方法详解

    1.安装 yum install rp-pppoe.x86_64 2.配置PPPOE客户端软件 安装完软件包后,必须配置pppoe的配置文件/etc/ppp/pppoe.conf,从而让ADSL拨号时 ...

  6. ADSL拨号上网或者光纤上网设置概要(原创)

    不管是在梧州设置光纤还是在太平设置ADSL拨号上网每次设置上网一体机的时候都是遇到各种麻烦...这次又是弄了N久,每次问题各不一样.总结一下操作过程,方便以后又遇问题回头查询自个微博.一.设置电话线的 ...

  7. centos配置ADSL拨号 配置阿里云的yum源

    如果系统yum源有问题可以更改yum源配置阿里云的yum源1)下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo(没有 wget命令可 ...

  8. GPRS管理与创建APN拨号连接(转)

    源:http://www.cnblogs.com/michael-zhangyu/archive/2009/07/04/1516797.html 本文主要介绍一些GPRS管理与创建APN拨号连接相关的 ...

  9. WIN10 拨号连接下 如何开启移动热点

    错误提示为:我们无法设置移动热点,因为你的电脑未建立以太网,WIFI或手机网络连接. 解决方法: 1. 首先用手机或其他设备建立无线热点.  2. 电脑连接步骤1中的热点,电脑端打开移动热点.  3. ...

随机推荐

  1. JS类型判定方法(不包括自定义类型)

    //判定数据类型 function isType(obj, type) { return toString.call(obj).indexOf('[object ' + type) == 0; } / ...

  2. html5 input属性

    今天才接确html5 +css3 实在是太赞了.  下面我就来介绍一下今天我用到的 input 属性. html5 代码如下: <input type="text" plac ...

  3. [CentOS 0010] CentOS 配置mysql允许远程登录

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  4. [转]JS继承的5种实现方式

    参考链接: http://yahaitt.iteye.com/blog/250338 虽说书上都讲过继承的方式方法,但这些东西每看一遍都多少有点新收获,所以单独拿出来放着. 1. 对象冒充 funct ...

  5. 【转】火火火火火!看HomeKit如何改变物联网和智能家居?

    摘要: 智能家居并非新概念,然而在苹果等巨头插足之前,它却只是一盘散沙,各自为营,苹果又将如何凭借HomeKit构建起拥有统一界面和控制中心的平台来实现各种智能家居设备与应用之间的无缝连接,真正实现智 ...

  6. python面试题大全

    注:本面试题来源于网络,转载请注明来自http://www.cnblogs.com/goodhacker/p/3366618.html. 1. (1)python下多线程的限制以及多进程中传递参数的方 ...

  7. 省队集训day6 C

    Description 给定平面上的 N 个点, 其中有一些是红的, 其他是蓝的.现在让你找两条平行的直线, 使得在保证    不存在一个蓝色的点 被夹在两条平行线之间,不经过任何一个点, 不管是蓝色 ...

  8. noi 3531 判断整除

    3531:判断整除 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 一个给定的正整数序列,在每个数之前都插入+号或-号后计算它们的和.比如序列:1.2.4共有 ...

  9. 多台web服务器之间共享session

    常见的几种方法如下: 1. 写客户端Cookie的方式 当用户登陆成功以后,把网站域名.用户名.密码.token.session有效时间全部采用cookie的形式写入到客户端的cookie里面,如果用 ...

  10. ExtJS5_MVVM特性的简单说明

    下面我们来看一下自动生成的代码中的MVVM架构的关系.Main是一个可视的控件,MainController是这个控件的控制类,MainModel是这个控件的模型类. 在上面的图片中,左边是Main. ...