如何利用modem远程拨号远程控制路由器

如何利用modem远程拨号远程控制路由器,第1张

公司申请的专线,一般要求在少于20天内下解决,但由于种种原因未能如意,那么远程控制路由器就显得格外重要了。

目前,公司还有少部分的3com 56K U.S. Robotics FAX voice的外置modem,只能用带有DB26的modem,正好3com的符合这个要求。使用RJ45-DB26的控制线线将modem和路由器的aux口连接起来,购买路由器的时候,会附送一条RJ45-DB9的控制线和DB9-DB26的适配口,将两条线连接起来就是RJ45-DB26的控制线了。

若要通过modem远程控制路由器,需要做

1、配置modem自动应答

2、配置路由器的aux口

3、配置路由器的enable secret/password

4、用windows自带的拨号程序进行远程登陆

1、配置modem自动应答

首先需要登陆modem,才能做进一步的配置。

PC可以通过DB26-DB9连接modem,用超级终端连接控制;也可以用RJ45-DB26,在路由器里远程登陆到modem进行配置。

下面以第二种方法为例:

在路由器里面sh line显示以下信息:

可以看到,modem连接到vty 5上了,接着

通过telnet loopback_ip 20xx,xx代表vty的,在这里是05,所以

telnet 10.0.0.10 2005username:password:at&1OKat&F1OK2、配置路由器的aux口配置如下:line aux 0password cisco

modem InOut

modem autoconfigure discovery

transport input allstopbits 1speed 38400

flowcontrol hardware

需要特别注意的是speed的参数,1700系列为38400,2500以上系列的则为115200。

3、配置路由器的特权密码routerenrouter#enable secret your_passwordrouter#wr4、用windows自带的拨号程序进行拨号

同时应该启用

的拨号程序进行拨号

为了方便排错,最好选中拨号属性中的“安全措施-交互式登陆及运行脚本”中的显示终端端口。

所有的配置完毕了,现在可以尝试一下用客户端通过modem,拨通远程的路由器了。

算机远程传输系统是实现不同区域信息联接的信息系统,采用以计算机、 调制解调器(MODEM)并通过电话线路组建设计算机远程传输系统不失为一种廉价而且有效的 构造方案。采用这 种硬件构造方案,必须配套以相应的传输工作软件,实现不同区域的信息协调工作。目前 F ox Pro for Windows 的流行使之日益成为我们程序设计的首选语言,但 FoxPro for Windows 语言本身并未提供远程拨号通讯的设计功能。本文就此提出一种简单、实用的解决方案。�

1. 设计思想�

在 FoxPro for Windows 提供了一类特殊动态连接库:FoxTools.fll。在这个动态连接库中 提供了几十种实用的函数,其中最为实用的是它提供了可直接调用 Windows API 的接口函 数:RegFn () 和 CallFn ()。Windows 在其API提供了丰富的函数调用功能,其中包含了如 OpenComm()、WriteComm()、Close Comm()等实用的通讯函数功能。FoxTools.FLL架起了它 们之间沟通的桥梁。基于此,我们就可以驾驭这些API函数实现我们所需要的通讯功能。�

2. FoxTools.FLL的导入

FoxTools.FLL提供于FoxPro for Windows的安装目录FOXPROW的一级子目录下在编程过程中 ,我们宜将FoxTools.FLL放置于应用程序的主程序的开始部分,以便于后继程序的调用。通 常对FoxTools.fll的导入命令格式如下:�

SET LIBRARY TO “FOXTOOLS.FLL”ADDITIVE�

如果我们在工程文件PROJECT中能用ADD命令加入库(Library)文件,将FoxTools.Fll的置于 所生成的EXE文件中,就可以避免在提交EXE文件时也必须附带FoxTools.FLL的繁琐。�

3. 注册与执行API函数方法�

3.1 注册API函数�

采用FoxTools.FLL的RegFn()可以实现Windows API的函数的注册,命令格式如下:�

RegFn(<API函数名称>,<参数类型>,<返回值类型>,<API函数库名称>)�

其中:〖ZK(〗<API函数名称>为我们所要登记的API函数名称。�

<参数类型>为所要传递的参数类型,共有六种:�

① I:整型�

② L:长型�

③ S:传址方式字符型�

④ C:传值方式字符型�

⑤ F:浮点型�

⑥ D:双精度型�

<返回值类型>为本函数调用返回值的类型,有以下五种:�

① I:整型�

② L:长型�

③ S:传址方式字符型�

④ F:浮点型�

⑤ D:双精度型�

<API函数库名称>为容含所注册API函数库的名称,注意需写明包括扩展名在内的 全称,如GDI.EXE等。�

3.2 执行API函数�

采用FoxTools.FII的CallFn()可以执行已注册成功的Windows API的函数,语法格式如下: �

CallFn(<API函数注册名称>,〔<调用参数1>,〔<调用参数2>〕〕…)�

其中:<API函数注册名称>为我们在RegFn()注册API函数后返回的名称。�

<调用参数>为调用该API函数所需要的参数。�

4. 调制解调器设计函数�

Windows API 函数中有关通讯的函数原型如下:�

4.1 〖ZK(〗打开通讯信道函数 OpenComm ()�

OpenComm(LPSTR 1pCommName, WORD wInQueue, WORD wOutQueue)�

其中:<1pCommName>为通讯端口名称,如LPT1、COM1等�

<wInQueue>为所接受的数据队列的长度,一般置为1024。�

<wOutQueue>同上�

4.2 [ZK(]传递通讯信息函数 WriteComm()\=

WriteComm(int nCid, LPSTR 1pBuf, int Size)\=

其中:<nCid>为OpenComm()函数返回的信道标志�

<1pBuf>为传输的缓冲内容�

<Size>为传输的缓冲大小�

4.3 关闭通讯信道函数CloseComm()�

CloseComm(nCid)�

其中:<nCid>为OpenComm()函数返回的信道标志。�

5. 设计实例�

我们根据上述设计思想,设计了一段程序说明远程通讯功能的具体实现方法,该程序只是简 单地完成一个通过电话线拨号功能。�

Set Library to "Foxtools.fll" Additive &&打开数据库�

Open=RegFn("OpenComm","CII","I") &&注册Open函数\=

Write=RegFn("WriteComm","ICI","I") &&注册Write函数�

Close=RegFn("CloseComm","I","I") &&注册Close函数�

*[CDD19*2]�[CDD19*2][HJ1.6mm]�

*调用 Open 函数打开COM2通讯端口�

*[CDD19*2]�[CDD19*2][HJ1.6mm]�

Com2=CallFn(Open,"COM2",100,100)\=

*[CDD19*2]�[CDD19*2][HJ1.6mm]�

*设置拨号电话号码�

*[CDD19*2]�[CDD19*2][HJ1.6mm]�

Telno="ATTD 3608511"+chr(13)\=

*[CDD19*2]�[CDD19*2][HJ1.6mm]�

*调用Write函数拨号�

*[CDD19*2][CDD19*2][HJ1.6mm]�

Restcall=CallFn(Write,Com2,Telno,len(Telno))\=

If Restcall<0�

Wait Window "传输故障,请检查线路!"�

Endif\=

*[CDD19*2]�[CDD19*2][HJ1.6mm]�

*调用Write函数结束传输�

*[CDD19*2]�[CDD19*2][HJ1.6mm]�

S="ATHO"+chr(13)\=

Restcall=CallFn(Write,Com2,S,len(S))\=

If Restcall<0�

Wait Window "传输故障,请检查线路!"�

Endif\=

Restcall=CallFn(Close,Com2)=

If Restcall<0�

Wait Window "线路关闭故障,请检查线路!"�

Endif�

6.结束语�

根据上述的设计思想,我们可以实现基本的计算机远程拨号通讯功能。文中所述在中文Wind ows 3.2环境下,用FoxPro for Windows 2.5b程序设计语言实现并通过。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/751678.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-16
下一篇2023-08-16

发表评论

登录后才能评论

评论列表(0条)

    保存