动力通讯工作组

动力通信工作组致力于网络通信的开发工作,进行tcpip网络编程,采用unix平台socket系列函数, windows平台 vc++6.0 MFC ,采用ASyncSocket对象。目前有telnet,irc,msn, SocketProxy 等产品程序。

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  14 随笔 :: 14 文章 :: 111 评论 :: 0 Trackbacks

第6章、判断语句(if)


  判断语句有if.var、if.text和if.end构成程序块,当if.var、if.text语句为真时,执行if块内的语句;当if.var、if.text语句为假时,不执行if块内的语句。格式如下:

if.var 
  if块内的语句1
  if块内的语句2
  ……
if.end

if.text 
  if块内的语句1
  if块内的语句2
  ……
if.end
  参见示例脚本[C:\snml2019\text\text_nms1.txt]中的if语句部分。

1、判断变量的值(if.var)

if.var {x} > {4}
判断变量“x”的整形值是否 > 4 

if.var {x} >= {4}
判断变量“x”的整形值是否 >= 4 

if.var {x} < {4}
判断变量“x”的整形值是否 < 4 

if.var {x} <= {4}
判断变量“x”的整形值是否 <= 4

if.var {x} == {4}
判断变量“x”的整形值是否 = 4

if.var {x} <> {4}
判断变量“x”的整形值是否不等于(<>) 4

if.var {versionIOS} in {12.4,12.3,12.2}
判断变量“versionIOS”的字符串的值是否在字符串“12.4,12.3,12.2”中

if.var {versionIOS} not in {12.4,12.3,12.2}
判断变量“versionIOS”的字符串的值是不否在字符串“12.4,12.3,12.2”中

if.var {versionIOS} contain {12.3}
判断变量“versionIOS”的字符串的值是否包含字符串“12.3”

if.var {versionIOS} not contain {12.3}
判断变量“versionIOS”的字符串的值是否不包含字符串“12.3”

2、判断文本区选定内容(if.text)

if.text contain {Version}
判断文本区的选定内容中是否包含字符串“Version”,如果包含就为真,执行if块内的语句。

if.text not contain { Version }
判断文本区的选定内容中是否不包含字符串“Version”,如果不包含就为真,执行if块内的语句。


目录: 1、var 2、screen 3、snmp 4、telnet 5、text 6、if 7、loop 8、dns 9、ping 10、arp 11、excel 12、smtp 13、tcp 14、udp 15、ssh 16、web 17、mysql 18、sqlite 19、Run 20、sys 21、macro 附录1、全部语句

第7章、循环语句(loop)


  循环语句有loop.begin和loop.end构成程序块。loop.next和loop.exit结合if语句控制loop的执行。

loop.begin 
  loop块内的语句
  
  loop.next
  不执行loop.next后面的语句,继续下一次循环,跳转到loop.begin执行
  
  loop块内的语句
  ……
  loop.exit
  不执行loop.exit后面的语句,跳出循环,跳转到loop.end执行
  
loop.end
参见示例脚本[C:\snml2019\text\text_nms1.txt]中的loop语句部分。


目录: 1、var 2、screen 3、snmp 4、telnet 5、text 6、if 7、loop 8、dns 9、ping 10、arp 11、excel 12、smtp 13、tcp 14、udp 15、ssh 16、web 17、mysql 18、sqlite 19、Run 20、sys 21、macro 附录1、全部语句

第8章、dns


  域名系统(DNS)是一种用于TCP/I应用程序的分布式数据库,它提供主机名字和 IP地址之间的转换及有关电子邮件的选路信息。

1、dns语句分析


dns.get var {ip_addr} host {mail.163.com}

查询主机“mail.163.com”的IP地址,保存到变量“ip_addr”中。本示例中变量ip_addr=[220.181.12.207]

2、示例脚本[C:\snml2019\ping\ping_nms1.txt]中的dns语句部分




目录: 1、var 2、screen 3、snmp 4、telnet 5、text 6、if 7、loop 8、dns 9、ping 10、arp 11、excel 12、smtp 13、tcp 14、udp 15、ssh 16、web 17、mysql 18、sqlite 19、Run 20、sys 21、macro 附录1、全部语句

第9章、ping


  “ping”这个名字源于声纳定位操作。目的是为了测试另一台主机、网络设备是否可达。ping是一个通信协议,是TCP/IP协议的一部分;ping也是Windows、Unix和Linux系统下的一个命令, ping命令可检查网络是否连通,分析和判定网络故障。

1、ping语句分析

ping.ip {220.181.12.207} ttl {64} size {32}

ping测试,主机、设备ip为220.181.12.207,发送报文的ttl值为64,发送报文的长度为32字节
ping语句执行后,系统创建、更新以下变量,示例值如下:
ping.dest_ip=[220.181.12.207],目的IP
ping.received_responses=[1],接收到响应报文的个数
ping.roundtrip_time_milliseconds=[56],响应时间(毫秒)
ping.reply_ip=[220.181.12.207],应答报文的IP,当ttl减小到0的时候,网络设备应答
ping.reply_ttl=[54],应答报文的ttl
ping.reply_bytes=[32],应答报文的长度
ping.status=[IP_SUCCESS]
ping语句执行后,通过检查变量“ping.status”是否为“IP_SUCCESS”来判断ping是否成功。

2、示例脚本[C:\snml2019\ping\ping_nms1.txt]

C:\snml2019\ping\ping_nms1.txt
001screen.text at point {150} {30} string {9、ping测试:ttl、size、roundtrip_time、ip}
002
003var {v_ttl} value {0}
004var {v_y} value {60}
005screen.text at point {50} {~v_y~} string {发送ping请求参数}
006screen.line from point {10} {75} to point {180} {75}
007screen.text at point {350} {~v_y~} string {ping应答参数}
008screen.line from point {200} {75} to point {630} {75}
009
010#run.set loglevel {debug}
011var {v_y} value {80}
012screen.text at point {10} {~v_y~} string {目的IP地址}
013screen.text at point {110} {~v_y~} string {TTL}
014screen.text at point {150} {~v_y~} string {字节数}
015
016screen.text at point {200} {~v_y~} string {IP地址}
017screen.text at point {300} {~v_y~} string {TTL}
018screen.text at point {350} {~v_y~} string {字节数}
019screen.text at point {400} {~v_y~} string {毫秒数}
020screen.text at point {450} {~v_y~} string {ping.status}
021
022#screen.line from point {10} {100} to point {630} {100}
023
024
025#var {ip_addr} value {192.168.118.2}
026run.set loglevel {debug}
027dns.get var {ip_addr} host {mail.163.com}
028
029var {v_ttl} value {0}
030var {v_y} value {80}
031var {v_sendbytes} value {1000}
032loop.begin
033  var {v_ttl} add number {1}
034  var {v_y} add number {20}
035  run.set loglevel {debug}
036  ping.ip {~ip_addr~} ttl {~v_ttl~} size {~v_sendbytes~}
037  run.set loglevel {nolog}
038  screen.text at point {10} {~v_y~} string {~ping.dest_ip~}
039  screen.text at point {110} {~v_y~} string {~v_ttl~}
040  screen.text at point {150} {~v_y~} string {~v_sendbytes~}
041  
042  screen.text at point {200} {~v_y~} string {~ping.reply_ip~}
043  screen.text at point {300} {~v_y~} string {~ping.reply_ttl~}
044  screen.text at point {350} {~v_y~} string {~ping.reply_bytes~}
045  screen.text at point {400} {~v_y~} string {~ping.roundtrip_time_milliseconds~}
046  screen.text at point {450} {~v_y~} string {~ping.status~}
047  if.var {v_ttl} > {16}
048    loop.exit
049  if.end
050loop.end
051
052run.end

  脚本执行画面如下:
 

目录: 1、var 2、screen 3、snmp 4、telnet 5、text 6、if 7、loop 8、dns 9、ping 10、arp 11、excel 12、smtp 13、tcp 14、udp 15、ssh 16、web 17、mysql 18、sqlite 19、Run 20、sys 21、macro 附录1、全部语句

第10章、arp


  当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据 48 bit的以太网地址(MAC地址)来确定目的接口的。ARP为IP地址到对应的硬件地址之间提供动态映射。


1、arp语句分析

arp.get var { arp_ip_mac} ip {10.174.38.164}
查询IP地址 “10.174.38.164”设备的MAC地址,保存到变量“arp_ip_mac”中。

参见示例脚本[C:\snml2019\arp\arp_nms1.txt]中的arp语句部分。

2、示例脚本[C:\snml2019\arp\arp_nms1.txt]


C:\snml2019\arp\arp_nms1.txt
001screen.text at point {250} {30} string {1、Arp 测试}
002var {v_ttl} value {0}
003var {v_y} value {60}
004screen.text at point {50} {~v_y~} string {IP地址}
005screen.line from point {10} {75} to point {180} {75}
006screen.text at point {350} {~v_y~} string {MAC地址}
007screen.line from point {200} {75} to point {630} {75}
008
009var {v_ip1} value {10.174.38.163}
010var {v_ip2} value {10.174.38.164}
011
012var {v_i} value {0}
013var {v_y} value {80}
014loop.begin
015  var {v_i} add number {1}
016  var {v_y} add number {20}
017  var {ip} copy var {v_ip~v_i~}
018  var {v_time} value datetime
019  
020  screen.text at point {10} {~v_y~} string {~v_i~}
021  screen.text at point {50} {~v_y~} string {~ip~}
022  screen.text at point {400} {~v_y~} string {~v_time~}
023  arp.get var {arp_ip} ip {~ip~}
024  
025  screen.text at point {200} {~v_y~} string {~arp_ip~}
026  if.var {v_i} >= {2}
027    loop.exit
028  if.end
029loop.end
030run.end


目录: 1、var 2、screen 3、snmp 4、telnet 5、text 6、if 7、loop 8、dns 9、ping 10、arp 11、excel 12、smtp 13、tcp 14、udp 15、ssh 16、web 17、mysql 18、sqlite 19、Run 20、sys 21、macro 附录1、全部语句
posted on 2019-07-16 09:46 动力通讯工作组 阅读(62) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。