| C:\snmlipv6\screen\screen_nms1.txt |
001 | screen.set font {Arial} size {16} |
002 | screen.text at point {140} {60} string {Simple Network Management Language (SNML)} |
003 | |
004 | screen.set font {华文行楷} size {24} |
005 | screen.text at point {180} {100} string {简单网络管理语言} |
006 | screen.line from point {10} {120} to point {630} {120} |
007 | screen.set font {Arial} size {12} |
008 | screen.play midi {cdefgab 1234567} |
009 | |
010 | var {x} value { 10} |
011 | var {y} value { 300} |
012 | |
013 | macro.call {draw_ladybird} |
014 | |
015 | |
016 | screen.text at point {10} {180} string {术语1:简单网络管理协议S N M P( Simple Network Management Protocol )} |
017 | screen.text at point {10} {230} string {术语2:简单网络管理语言 S N M L ( Simple Network Management Language )} |
018 | screen.text at point {200} {350} string {版本:snml8.13(ladybird-ipv6-20200205)} |
019 | screen.text at point {200} {375} string {技术支持邮箱1:snml_ladybird@protonmail.com} |
020 | screen.text at point {200} {400} string {技术支持邮箱2:snml_ladybird@hotmail.com} |
021 | screen.text at point {10} {440} string {Now remember, Pinocchio, be a good boy. And always let your conscience be your guide.} |
022 | screen.text at point {10} {455} string {Love is the flame of life, without it, everything becomes dark. -- Romain Rolland. } |
023 | screen.speak {Now remember, Pinocchio, be a good boy. And always let your conscience be your guide.} |
024 | screen.speak {Love is the flame of life, without it, everything becomes dark. -- Romain Rolland. } |
025 | |
026 | screen.line from point {50} {220} to point {630} {220} |
027 | screen.line from point {50} {265} to point {630} {265} |
028 | screen.line from point {30} {290} to point {630} {290} |
029 | screen.line from point {130} {315} to point {630} {315} |
030 | run.set loglevel {info} |
031 | |
032 | screen.speak {1、什么是简单网络管理协议S N M P( Simple Network Management Protocol )?} |
033 | |
034 | screen.text at point {50} {205} string {简单网络管理协议是可以管理不同厂家网络设备的简单通讯协议。} |
035 | screen.speak {简单网络管理协议是可以管理不同厂家网络设备的简单通讯协议。} |
036 | screen.text at point {50} {250} string {简单网络管理语言是一种类自然语言的脚本语言,它采用snmp、telnet、ping、dns、arp、ssh、} |
037 | screen.speak {简单网络管理语言是一种类自然语言的脚本语言,它采用snmp、telnet、ping、dns、arp、ssh、} |
038 | screen.text at point {30} {275} string {tcp、udp、web等协议与网络设备的互动,内置了smtp协议用于告警等邮件的发送,} |
039 | screen.speak {tcp、udp、web等协议与网络设备的互动,内置了smtp协议用于告警等邮件的发送,} |
040 | screen.text at point {130} {300} string {支持excel、mysql、sqlite等3种方式进行管理信息数据的存取。} |
041 | screen.speak {支持excel、mysql、sqlite等3种方式进行管理信息数据的存取。} |
042 | screen.save to file {C:\snmlipv6\tmp\snml_1.png} from point {0} {0} to point {640} {480} |
043 | run.end |
044 | |
045 | macro.begin {draw_ladybird} |
046 | #var {x} value {0} |
047 | #var {y} value {0} |
048 | screen.set mode {stroke} |
049 | screen.set color red {0} green {0} blue {0} |
050 | #screen.rect from point {0} {0} to point {127} {127} |
051 | screen.set color red {255} green {0} blue {0} |
052 | screen.set mode {fill} |
053 | |
054 | var {x1} value number {~x~+60} |
055 | var {y1} value number {~y~+78} |
056 | screen.arc at point {~x1~} {~y1~} radius {50} from {0} to {360} |
057 | screen.set color red {0} green {0} blue {0} |
058 | |
059 | var {x1} value number {~x~+60} |
060 | var {y1} value number {~y~+33} |
061 | screen.arc at point {~x1~} {~y1~} radius {25} from {180} to {360} |
062 | |
063 | var {x1} value number {~x~+60} |
064 | var {y1} value number {~y~+28} |
065 | screen.set color red {0} green {0} blue {0} |
066 | screen.arc at point {~x1~} {~y1~} radius {100} from {85} to {95} |
067 | |
068 | var {x1} value number {~x~+60} |
069 | var {y1} value number {~y~+33} |
070 | var {x2} value number {~x~+80} |
071 | var {y2} value number {~y~+5} |
072 | |
073 | screen.line from point {~x1~} {~y1~} to point {~x2~} {~y2~} |
074 | var {x2} value number {~x~+40} |
075 | screen.line from point {~x1~} {~y1~} to point {~x2~} {~y2~} |
076 | |
077 | var {x1} value number {~x~+80} |
078 | var {y1} value number {~y~+5} |
079 | screen.arc at point {~x1~} {~y1~} radius {2} from {0} to {360} |
080 | var {x1} value number {~x~+40} |
081 | screen.arc at point {~x1~} {~y1~} radius {2} from {0} to {360} |
082 | |
083 | screen.set color red {255} green {255} blue {255} |
084 | |
085 | var {x1} value number {~x~+48} |
086 | var {y1} value number {~y~+20} |
087 | screen.arc at point {~x1~} {~y1~} radius {5} from {0} to {360} |
088 | var {x1} value number {~x~+72} |
089 | screen.arc at point {~x1~} {~y1~} radius {5} from {0} to {360} |
090 | |
091 | screen.set color red {0} green {0} blue {0} |
092 | |
093 | var {x1} value number {~x~+48} |
094 | var {y1} value number {~y~+19} |
095 | screen.arc at point {~x1~} {~y1~} radius {3} from {0} to {360} |
096 | |
097 | var {x1} value number {~x~+72} |
098 | screen.arc at point {~x1~} {~y1~} radius {3} from {0} to {360} |
099 | |
100 | var {x1} value number {~x~+60} |
101 | var {y1} value number {~y~+43} |
102 | screen.arc at point {~x1~} {~y1~} radius {10} from {0} to {360} |
103 | |
104 | var {x1} value number {~x~+90} |
105 | var {y1} value number {~y~+59} |
106 | screen.arc at point {~x1~} {~y1~} radius {8} from {0} to {360} |
107 | var {x1} value number {~x~+30} |
108 | screen.arc at point {~x1~} {~y1~} radius {8} from {0} to {360} |
109 | |
110 | var {x1} value number {~x~+75} |
111 | var {y1} value number {~y~+73} |
112 | screen.arc at point {~x1~} {~y1~} radius {8} from {0} to {360} |
113 | var {x1} value number {~x~+45} |
114 | screen.arc at point {~x1~} {~y1~} radius {8} from {0} to {360} |
115 | |
116 | var {x1} value number {~x~+90} |
117 | var {y1} value number {~y~+100} |
118 | screen.arc at point {~x1~} {~y1~} radius {8} from {0} to {360} |
119 | var {x1} value number {~x~+30} |
120 | screen.arc at point {~x1~} {~y1~} radius {8} from {0} to {360} |
121 | macro.end |
执行C:\snmlipv6\screen_nms1.bat,点击“Go”或“run”执行脚本,脚本执行结果如下:
| C:\snmlipv6\snmp\snmp_ipv6.txt |
001 | screen.set color red {0} green {0} blue {0} |
002 | screen.text at point {150} {30} string {10.snmp test (ipv6): snmp.open snmp.get snmp.getnext} |
003 | run.set loglevel {debug} |
004 | snmp.open version {2c} ip {fe80::2} port {161} password {cisco} |
005 | snmp.get var {v_snmp} oid {1.3.6.1.2.1.1.1.0} |
006 | screen.text at point {10} {60} string {Cisco3725 ipv6:[fe80::2], snmp.get(1.3.6.1.2.1.1.1.0)=[~v_snmp~]} |
007 | |
008 | var {v_y} value {140} |
009 | screen.text at point {10} {~v_y~} string {No.} |
010 | screen.text at point {50} {~v_y~} string {Test Method} |
011 | screen.line from point {10} {155} to point {230} {155} |
012 | screen.text at point {270} {~v_y~} string {snmp.oid} |
013 | screen.line from point {250} {155} to point {350} {155} |
014 | screen.text at point {390} {~v_y~} string {snmp.value} |
015 | screen.line from point {370} {155} to point {630} {155} |
016 | |
017 | var {v_time} value datetime |
018 | var {v_i} value {0} |
019 | |
020 | |
021 | var {snmp.oid} value {1.3.6.1.2.1.1.1.0} |
022 | loop.begin |
023 | |
024 | var {v_i} add number {1} |
025 | var {v_y} add number {18} |
026 | screen.text at point {10} {~v_y~} string {~v_i~} |
027 | |
028 | screen.text at point {50} {~v_y~} string {snmp.getnext(~snmp.oid~)} |
029 | snmp.getnext oid {~snmp.oid~} |
030 | screen.text at point {250} {~v_y~} string {~snmp.oid~} |
031 | screen.text at point {370} {~v_y~} string {~snmp.value~} |
032 | |
033 | var {v_y} add number {18} |
034 | snmp.get var {v_snmp} oid {~snmp.oid~} |
035 | screen.text at point {50} {~v_y~} string {snmp.get(~snmp.oid~)} |
036 | |
037 | screen.text at point {370} {~v_y~} string {~v_snmp~} |
038 | |
039 | if.var {v_y} > {400} |
040 | loop.exit |
041 | if.end |
042 | loop.end |
043 | run.end |
脚本执行结果如下:
| C:\snmlipv6\snmp\snmp_ipv4_interfaces.txt |
001 | run.set logevel {nolog} |
002 | screen.set color red {0} green {0} blue {0} |
003 | screen.text at point {150} {10} string {10.snmp (ipv4): mib-2.interfaces } |
004 | |
005 | snmp.open version {2c} ip {192.168.186.132} port {161} password {cisco} |
006 | screen.set color red {0} green {0} blue {255} |
007 | snmp.get var {system.sysDescr} oid {1.3.6.1.2.1.1.1.0} |
008 | screen.text at point {5} {30} string {snmp.get (oid:1.3.6.1.2.1.1.1.0 -- system.sysDescr) return value:} |
009 | screen.set color red {0} green {0} blue {0} |
010 | screen.text at point {5} {48} string {[~system.sysDescr~]} |
011 | snmp.get var {interfaces.ifNumber} oid {1.3.6.1.2.1.2.1.0} |
012 | screen.set color red {0} green {0} blue {255} |
013 | screen.text at point {5} {110} string {snmp.get (oid:1.3.6.1.2.1.2.1.0 -- interfaces.ifNumber) return value: [~interfaces.ifNumber~]} |
014 | |
015 | screen.set color red {0} green {0} blue {0} |
016 | var {v_y} value {140} |
017 | screen.text at point {8} {~v_y~} string {ifIndex} |
018 | screen.line from point {10} {155} to point {40} {155} |
019 | screen.text at point {60} {~v_y~} string {ifDescr:1.3.6.1.2.1.2.2.1.2.X} |
020 | screen.line from point {50} {155} to point {230} {155} |
021 | screen.text at point {270} {~v_y~} string {ifInOctets} |
022 | screen.line from point {250} {155} to point {350} {155} |
023 | screen.text at point {390} {~v_y~} string {ifOutOctets} |
024 | screen.line from point {370} {155} to point {470} {155} |
025 | |
026 | var {v_time} value datetime |
027 | var {v_i} value {0} |
028 | |
029 | loop.begin |
030 | |
031 | var {v_i} add number {1} |
032 | var {v_y} add number {18} |
033 | |
034 | screen.text at point {10} {~v_y~} string {~v_i~} |
035 | |
036 | snmp.get var {ifDescr.~v_i~} oid {1.3.6.1.2.1.2.2.1.2.~v_i~} |
037 | var {snmp.value} copy var {ifDescr.~v_i~} |
038 | screen.text at point {50} {~v_y~} string {~snmp.value~} |
039 | |
040 | snmp.get var {ifInOctets.~v_i~} oid {1.3.6.1.2.1.2.2.1.10.~v_i~} |
041 | var {snmp.value} copy var {ifInOctets.~v_i~} |
042 | screen.text at point {250} {~v_y~} string {~snmp.value~} |
043 | |
044 | snmp.get var {ifOutOctets.~v_i~} oid {1.3.6.1.2.1.2.2.1.16.~v_i~} |
045 | var {snmp.value} copy var {ifOutOctets.~v_i~} |
046 | screen.text at point {370} {~v_y~} string {~snmp.value~} |
047 | |
048 | if.var {v_i} > {~interfaces.ifNumber~} |
049 | loop.exit |
050 | if.end |
051 | loop.end |
052 | run.end |
脚本执行结果如下:
| C:\snmlipv6\text\text_nms1.txt |
001 | run.set loglevel {info} |
002 | screen.set color red {0} green {0} blue {0} |
003 | screen.text at point {150} {30} string {16、text test} |
004 | var {v_y} value {60} |
005 | screen.text at point {10} {~v_y~} string {No.} |
006 | screen.text at point {100} {~v_y~} string {9x9 multiplication table} |
007 | screen.line from point {10} {75} to point {630} {75} |
008 | var {v_i} value {0} |
009 | var {v_x} value {0} |
010 | var {v_y} value {0} |
011 | var {x} value {0} |
012 | var {y} value {0} |
013 | var {v_xy} value {0} |
014 | |
015 | loop.begin |
016 | var {v_y} add number {1} |
017 | var {v_x} value {0} |
018 | var {y} value number {70+28*~v_y~} |
019 | screen.text at point {5} {~y~} string {Line:~v_y~} |
020 | text.add {Line:~v_y~} |
021 | loop.begin |
022 | var {v_x} add number {1} |
023 | var {v_time} value datetime |
024 | var {v_xy} value number {~v_x~*~v_y~} |
025 | var {v_xy} adjust length {3} align {left} |
026 | |
027 | text.add {~v_x~*~v_y~=~v_xy~ } |
028 | |
029 | var {x} value number {~v_x~*50} |
030 | |
031 | screen.text at point {~x~} {~y~} string {~v_x~*~v_y~=~v_xy~} |
032 | |
033 | if.var {v_x} >= {~v_y~} |
034 | |
035 | text.add {%0d%0a} |
036 | loop.exit |
037 | if.end |
038 | loop.end |
039 | |
040 | text.tailpointer move to tail |
041 | text.headpointer move forward after {Line:~v_y~} |
042 | |
043 | text.line get all words |
044 | #text.line get all words between {1} and {%0d} separated by { } |
045 | text.get var {word_no2} word number {2} |
046 | |
047 | if.var {v_y} >= {9} |
048 | loop.exit |
049 | if.end |
050 | loop.end |
051 | |
052 | text.headpointer move to head |
053 | text.tailpointer move to tail |
054 | text.save to file {C:\snmlipv6\text\text99.txt} |
055 | text.replace {*} with {x} |
056 | text.headpointer move to head |
057 | text.tailpointer move to tail |
058 | text.save to file {C:\snmlipv6\text\text99x.txt} |
059 | |
060 | text.replace {x} with {X} |
061 | text.headpointer move to head |
062 | text.tailpointer move to tail |
063 | text.save to file {C:\snmlipv6\text\text99X2.txt} |
064 | |
065 | |
066 | run.end |
| C:\snmlipv6\ping\ping_ipv4.txt |
001 | screen.text at point {150} {30} string {9.ping test (ipv4): ttl,size,roundtrip_time,ip} |
002 | |
003 | var {v_ttl} value {0} |
004 | var {v_y} value {60} |
005 | screen.text at point {50} {~v_y~} string {send ping request} |
006 | screen.line from point {10} {75} to point {180} {75} |
007 | screen.text at point {350} {~v_y~} string {ping response} |
008 | screen.line from point {200} {75} to point {630} {75} |
009 | |
010 | var {v_y} value {80} |
011 | screen.text at point {10} {~v_y~} string {Dest IP Addr} |
012 | screen.text at point {110} {~v_y~} string {TTL} |
013 | screen.text at point {150} {~v_y~} string {Bytes} |
014 | |
015 | screen.text at point {200} {~v_y~} string {IP Addr} |
016 | screen.text at point {300} {~v_y~} string {TTL} |
017 | screen.text at point {350} {~v_y~} string {Bytes} |
018 | screen.text at point {400} {~v_y~} string {ms} |
019 | screen.text at point {450} {~v_y~} string {ping.status} |
020 | |
021 | run.set loglevel {debug} |
022 | dns.get var {ip_addr} host {mail.163.com} |
023 | run.set loglevel {nolog} |
024 | |
025 | var {v_ttl} value {0} |
026 | var {v_y} value {80} |
027 | var {v_sendbytes} value {1000} |
028 | loop.begin |
029 | var {v_ttl} add number {1} |
030 | var {v_y} add number {20} |
031 | run.set loglevel {debug} |
032 | ping.ip {~ip_addr~} ttl {~v_ttl~} size {~v_sendbytes~} |
033 | run.set loglevel {nolog} |
034 | screen.text at point {10} {~v_y~} string {~ping.dest_ip~} |
035 | screen.text at point {110} {~v_y~} string {~v_ttl~} |
036 | screen.text at point {150} {~v_y~} string {~v_sendbytes~} |
037 | |
038 | screen.text at point {200} {~v_y~} string {~ping.reply_ip~} |
039 | screen.text at point {300} {~v_y~} string {~ping.reply_ttl~} |
040 | screen.text at point {350} {~v_y~} string {~ping.reply_bytes~} |
041 | screen.text at point {400} {~v_y~} string {~ping.roundtrip_time_milliseconds~} |
042 | screen.text at point {450} {~v_y~} string {~ping.status~} |
043 | if.var {v_ttl} > {16} |
044 | loop.exit |
045 | if.end |
046 | loop.end |
047 | |
048 | run.end |
| C:\snmlipv6\ping\ping_ipv6.txt |
001 | screen.text at point {150} {30} string {9.ping test (ipv6): ttl,size,roundtrip_time,ip} |
002 | |
003 | var {v_ttl} value {0} |
004 | var {v_y} value {60} |
005 | screen.text at point {50} {~v_y~} string {send ping request} |
006 | screen.line from point {10} {75} to point {180} {75} |
007 | screen.text at point {350} {~v_y~} string {ping response} |
008 | screen.line from point {200} {75} to point {630} {75} |
009 | |
010 | var {v_y} value {80} |
011 | screen.text at point {10} {~v_y~} string {Dest IP Addr} |
012 | screen.text at point {110} {~v_y~} string {TTL} |
013 | screen.text at point {150} {~v_y~} string {Bytes} |
014 | |
015 | screen.text at point {200} {~v_y~} string {IP Addr} |
016 | screen.text at point {400} {~v_y~} string {ms} |
017 | screen.text at point {450} {~v_y~} string {ping.status} |
018 | |
019 | #run.set loglevel {debug} |
020 | dns.set ipmode {ipv6} |
021 | #dns.get var {ip_addr} host {www.ipv6-test.com} |
022 | |
023 | var {ip_addr} value {FE80::1} |
024 | |
025 | var {v_ttl} value {0} |
026 | var {v_y} value {80} |
027 | var {v_sendbytes} value {1000} |
028 | loop.begin |
029 | var {v_ttl} add number {1} |
030 | var {v_y} add number {20} |
031 | ping.ip {~ip_addr~} ttl {~v_ttl~} size {~v_sendbytes~} |
032 | |
033 | screen.text at point {10} {~v_y~} string {~ping.dest_ip~} |
034 | screen.text at point {110} {~v_y~} string {~v_ttl~} |
035 | screen.text at point {150} {~v_y~} string {~v_sendbytes~} |
036 | screen.text at point {200} {~v_y~} string {~ping.reply_ip~} |
037 | screen.text at point {400} {~v_y~} string {~ping.roundtrip_time_milliseconds~} |
038 | screen.text at point {450} {~v_y~} string {~ping.status~} |
039 | if.var {v_ttl} > {16} |
040 | loop.exit |
041 | if.end |
042 | loop.end |
043 | |
044 | run.end |
| C:\snmlipv6\excel\excel_nms1.txt |
001 | screen.text at point {250} {30} string {11. excel Test} |
002 | var {v_y} value {60} |
003 | screen.text at point {50} {~v_y~} string {Write Col: C,D} |
004 | screen.line from point {10} {75} to point {180} {75} |
005 | screen.text at point {220} {~v_y~} string {Read Col: IP} |
006 | screen.line from point {200} {75} to point {340} {75} |
007 | screen.text at point {350} {~v_y~} string {Read Col: MAC} |
008 | screen.line from point {350} {75} to point {630} {75} |
009 | excel.open {C:\snmlipv6\excel\snml.xlsx} sheet {Sheet1} |
010 | var {v_time} value datetime |
011 | var {v_i} value {1} |
012 | loop.begin |
013 | var {v_i} add number {1} |
014 | var {v_y} add number {18} |
015 | if.var {v_y} > {400} |
016 | loop.exit |
017 | if.end |
018 | var {v_time} value datetime |
019 | screen.text at point {10} {~v_y~} string {~v_i~} |
020 | screen.text at point {50} {~v_y~} string {~v_time~} |
021 | excel.cell {D~v_i~} value {[~v_time~]} |
022 | excel.get var {excel.B} cell {B~v_i~} |
023 | screen.text at point {200} {~v_y~} string {~excel.B~} |
024 | arp.get var {arp_ip_mac} ip {~excel.B~} |
025 | excel.cell {C~v_i~} value {~arp_ip_mac~} |
026 | excel.get var {excel.C} cell {C~v_i~} |
027 | screen.text at point {350} {~v_y~} string {~excel.C~} |
028 | |
029 | loop.end |
030 | excel.close |
031 | run.end |
| C:\snmlipv6\smtp\smtp_nms1.txt |
001 | screen.text at point {250} {30} string {12. smtp Test: Send Mail} |
002 | |
003 | var {v_time} value datetime |
004 | var {v_y} value {60} |
005 | |
006 | |
007 | screen.text at point {10} {~v_y~} string {sina, Begin To Send A Mail: ~v_time~} |
008 | |
009 | smtp.server {smtp.sina.com} port {25} username {xxxaaaaabbb@sina.com} password {myPassword} |
010 | smtp.subject {Test Send A Mail:~v_time~} body {Email Body%0a, Send Time: ~v_time~} |
011 | smtp.add attachment {C:\snmlipv6\excel\snml.xlsx} |
012 | smtp.add attachment {C:\snmlipv6\text\text99.txt} |
013 | run.set loglevel {debug} |
014 | smtp.send to {myEmail@163.com} |
015 | run.set loglevel {nolog} |
016 | screen.text at point {300} {~v_y~} string {Send Mail End.} |
017 | |
018 | |
019 | var {v_time} value datetime |
020 | var {v_y} add number {20} |
021 | |
022 | screen.text at point {10} {~v_y~} string {126, Begin To Send A Mail: ~v_time~} |
023 | |
024 | smtp.server {smtp.126.com} port {25} username {myEamil@126.com} password {myPassword} |
025 | smtp.subject {Test Send A Mail:~v_time~} body {Email Body%0a, Send Time: ~v_time~} |
026 | smtp.add attachment {C:\snmlipv6\excel\snml.xlsx} |
027 | smtp.add attachment {C:\snmlipv6\text\text99.txt} |
028 | run.set loglevel {debug} |
029 | smtp.send to {ladybird_snml@protonmail.com} |
030 | run.set loglevel {nolog} |
031 | screen.text at point {300} {~v_y~} string {Send Mail End.} |
032 | |
033 | |
034 | var {v_time} value datetime |
035 | var {v_y} add number {20} |
036 | screen.text at point {10} {~v_y~} string {163,Begin To Send A Mail: ~v_time~} |
037 | |
038 | smtp.server {smtp.163.com} port {25} username {myEmail@163.com} password {myPassword} |
039 | smtp.subject {Test Send A Mail:~v_time~} body {Email Body%0a, Send Time: ~v_time~} |
040 | smtp.add attachment {C:\snmlipv6\excel\snml.xlsx} |
041 | smtp.add attachment {C:\snmlipv6\text\text99.txt} |
042 | run.set loglevel {debug} |
043 | smtp.send to {xxxaaaaabbb@126.com} |
044 | run.set loglevel {nolog} |
045 | screen.text at point {300} {~v_y~} string {Send Mail End.} |
046 | |
047 | run.end |
| C:\snmlipv6\tcp\tcp_server_ipv4.nms |
001 | |
002 | screen.text at point {150} {30} string {13.2 tcp.server Test} |
003 | var {v_y} value {60} |
004 | screen.text at point {10} {~v_y~} string {No.} |
005 | screen.text at point {50} {~v_y~} string {tcp.server} |
006 | screen.line from point {10} {75} to point {160} {75} |
007 | screen.text at point {200} {~v_y~} string {tcp.send} |
008 | screen.line from point {180} {75} to point {270} {75} |
009 | screen.text at point {300} {~v_y~} string {tcp.recv} |
010 | screen.line from point {300} {75} to point {630} {75} |
011 | |
012 | var {v_time} value datetime |
013 | var {v_i} value {0} |
014 | #run.set loglevel {debug} |
015 | tcp.server listen port {~run.arg.4~} |
016 | |
017 | var {v_i} add number {1} |
018 | var {v_y} add number {18} |
019 | |
020 | var {v_time} value datetime |
021 | |
022 | text.headpointer move to tail |
023 | text.tailpointer move to tail |
024 | tcp.recv {tcp.client:} |
025 | tcp.recv for {3} bytes |
026 | tcp.recv expect {client.end} |
027 | tcp.recv for {3} seconds |
028 | text.tailpointer move to tail |
029 | |
030 | tcp.send {tcp.server:~run.arg.4~,~v_i~[~v_time~]%0d%0a} |
031 | tcp.send text |
032 | tcp.send {%0d%0aserver.end%0d%0a} |
033 | |
034 | screen.text at point {10} {~v_y~} string {~v_i~} |
035 | screen.text at point {50} {~v_y~} string { recv: ~tcp.client.ip~:~tcp.client.port~} |
036 | screen.text at point {280} {~v_y~} string { send: tcp.server:~run.arg.4~} |
037 | |
038 | tcp.close |
039 | run.end |
| C:\snmlipv6\tcp\tcp_server_ipv6.nms |
001 | |
002 | screen.text at point {150} {30} string {13.4 tcp.server (ipv4&ipv6)Test} |
003 | var {v_y} value {60} |
004 | screen.text at point {10} {~v_y~} string {No.} |
005 | screen.text at point {50} {~v_y~} string {tcp.server} |
006 | screen.line from point {10} {75} to point {160} {75} |
007 | screen.text at point {200} {~v_y~} string {tcp.send} |
008 | screen.line from point {180} {75} to point {270} {75} |
009 | screen.text at point {300} {~v_y~} string {tcp.recv} |
010 | screen.line from point {300} {75} to point {630} {75} |
011 | |
012 | var {v_time} value datetime |
013 | var {v_i} value {0} |
014 | #run.set loglevel {debug} |
015 | tcp.server listen port {~run.arg.4~} |
016 | |
017 | var {v_i} add number {1} |
018 | var {v_y} add number {18} |
019 | |
020 | var {v_time} value datetime |
021 | |
022 | text.headpointer move to tail |
023 | text.tailpointer move to tail |
024 | tcp.recv {tcp.client:} |
025 | tcp.recv for {3} bytes |
026 | tcp.recv expect {client.end} |
027 | tcp.recv for {3} seconds |
028 | text.tailpointer move to tail |
029 | |
030 | tcp.send {tcp.server:~run.arg.4~,~v_i~[~v_time~]%0d%0a} |
031 | tcp.send text |
032 | tcp.send {%0d%0aserver.end%0d%0a} |
033 | |
034 | screen.text at point {10} {~v_y~} string {~v_i~} |
035 | screen.text at point {50} {~v_y~} string { recv: ~tcp.client.ip~:~tcp.client.port~} |
036 | screen.text at point {280} {~v_y~} string { send: tcp.server:~run.arg.4~} |
037 | |
038 | tcp.close |
039 | run.end |
脚本执行画面如下:
| C:\snmlipv6\udp\udp_server_ipv4_ipv6.nms |
001 | |
002 | screen.text at point {150} {30} string {13.2 udp.server ( ipv4 & ipv6 ) Test} |
003 | var {v_y} value {60} |
004 | screen.text at point {10} {~v_y~} string {No.} |
005 | screen.text at point {50} {~v_y~} string {udp.server} |
006 | screen.line from point {10} {75} to point {160} {75} |
007 | screen.text at point {200} {~v_y~} string {udp.send} |
008 | screen.line from point {180} {75} to point {270} {75} |
009 | screen.text at point {300} {~v_y~} string {udp.recv} |
010 | screen.line from point {300} {75} to point {630} {75} |
011 | |
012 | var {v_time} value datetime |
013 | var {v_i} value {0} |
014 | #run.set loglevel {debug} |
015 | udp.server listen port {~run.arg.4~} |
016 | |
017 | var {v_i} add number {1} |
018 | var {v_y} add number {18} |
019 | |
020 | var {v_time} value datetime |
021 | |
022 | text.headpointer move to tail |
023 | text.tailpointer move to tail |
024 | udp.recv {1} packets |
025 | udp.recv {1} seconds |
026 | text.tailpointer move to tail |
027 | |
028 | udp.send {udp.server:~run.arg.4~,~v_i~[~v_time~]%0d%0a} |
029 | udp.send text |
030 | udp.send {%0d%0aserver.end%0d%0a} |
031 | |
032 | screen.text at point {10} {~v_y~} string {~v_i~} |
033 | screen.text at point {50} {~v_y~} string { recv: ~udp.client.ip~:~udp.client.port~} |
034 | screen.text at point {280} {~v_y~} string { send: udp.server:~run.arg.4~} |
035 | |
036 | udp.close |
037 | run.end |
| C:\snmlipv6\ssh\ssh_ipv4.txt |
001 | screen.text at point {150} {30} string {15. ssh (ipv4) Test, (use ssh you need to get ssh.key License File)} |
002 | var {v_y} value {60} |
003 | screen.text at point {10} {~v_y~} string {No. server ip:port send command recv } |
004 | |
005 | screen.line from point {10} {75} to point {30} {75} |
006 | screen.line from point {50} {75} to point {270} {75} |
007 | screen.line from point {300} {75} to point {630} {75} |
008 | |
009 | screen.text at point {10} {425} string {1. run ssh_req.bat 2. send email with file ssh_req.txt%0d%0a} |
010 | screen.text at point {10} {450} string {email1: ladybird_snml@protonmail.com, email2: ladybird_snml@hotmail.com%0d%0a} |
011 | |
012 | var {v_time} value datetime |
013 | var {v_i} value {0} |
014 | run.set loglevel {debug} |
015 | loop.begin |
016 | |
017 | var {v_i} add number {1} |
018 | var {v_y} add number {18} |
019 | |
020 | ssh.connect ip {192.168.186.132} port {22} username {cisco} password {cisco} |
021 | ssh.set onrecv {-More-} send { %0a} |
022 | ssh.recv for {3} seconds |
023 | ssh.send {show version%0a} |
024 | ssh.recv expect {Version} |
025 | ssh.recv for {3} seconds |
026 | ssh.close |
027 | text.headpointer move to head |
028 | text.tailpointer move to tail |
029 | text.save append to file {C:\snmlipv6\ssh\ssh_out_ipv4~v_i~.txt} |
030 | screen.text at point {10} {~v_y~} string {~v_i~} |
031 | screen.text at point {50} {~v_y~} string {192.168.186.132:22 send 'show version'} |
032 | screen.text at point {300} {~v_y~} string {ssh.recv : ~text.bytes~ Bytes } |
033 | text.delete from headpointer |
034 | |
035 | if.var {v_y} > {100} |
036 | loop.exit |
037 | if.end |
038 | loop.end |
039 | run.end |
| C:\snmlipv6\ssh\sshreg_nms.txt |
001 | screen.text at point {150} {30} string {15. ssh Test, Ssh needs a License. Please write email to get ssh.key file.} |
002 | var {v_y} value {60} |
003 | |
004 | screen.line from point {10} {75} to point {630} {75} |
005 | screen.line from point {10} {425} to point {630} {425} |
006 | |
007 | |
008 | screen.text at point {10} {80} string {1. run ssh_req.bat 2. send email with file ssh_req.txt%0d%0a} |
009 | screen.text at point {10} {100} string {email1: ladybird_snml@protonmail.com, email2: ladybird_snml@hotmail.com%0d%0a} |
010 | |
011 | var {v_time} value datetime |
012 | var {v_i} value {0} |
013 | |
014 | text.add {run.version=[~run.version~]%0d%0a} |
015 | text.add {run.arg.1=[~run.arg.1~]%0d%0a} |
016 | text.add {v_time=[~v_time~]%0d%0a} |
017 | |
018 | text.add {os.type=[~os.type~]%0d%0a} |
019 | text.add {os.version=[~os.version~]%0d%0a} |
020 | |
021 | text.add {nic.ip=[~nic.ip~]%0d%0a} |
022 | text.add {nic.description=[~nic.description~]%0d%0a} |
023 | text.add {nic.mac=[~nic.mac~]%0d%0a} |
024 | |
025 | text.add {1. run ssh_req.bat 2. send email with file ssh_req.txt%0d%0a} |
026 | text.add {email1: ladybird_snml@protonmail.com, email2: ladybird_snml@hotmail.com%0d%0a} |
027 | |
028 | text.headpointer move to head |
029 | text.tailpointer move to tail |
030 | text.save append to file {C:\snmlipv6\ssh\ssh_req.txt} |
031 | |
032 | screen.text at point {120} {180} string { File C:\snmlipv6\ssh\ssh_req.txt created ok!, total ~text.bytes~ bytes.} |
033 | run.end |
| C:\snmlipv6\ssh\ssh_ipv6.txt |
001 | screen.text at point {150} {30} string {15.3 ssh (ipv6) Test, (use ssh you need to get ssh.key License File)} |
002 | var {v_y} value {60} |
003 | screen.text at point {10} {~v_y~} string {No. server ip:port send command recv } |
004 | |
005 | screen.line from point {10} {75} to point {30} {75} |
006 | screen.line from point {50} {75} to point {270} {75} |
007 | screen.line from point {300} {75} to point {630} {75} |
008 | |
009 | screen.text at point {10} {425} string {1. run ssh_req.bat 2. send email with file ssh_req.txt%0d%0a} |
010 | screen.text at point {10} {450} string {email1: ladybird_snml@protonmail.com, email2: ladybird_snml@hotmail.com%0d%0a} |
011 | |
012 | var {v_time} value datetime |
013 | var {v_i} value {0} |
014 | run.set loglevel {debug} |
015 | loop.begin |
016 | |
017 | var {v_i} add number {1} |
018 | var {v_y} add number {18} |
019 | |
020 | ssh.connect ip {FE80::1} port {22} username {cisco} password {cisco} |
021 | ssh.set onrecv {-More-} send { %0a} |
022 | ssh.recv for {3} seconds |
023 | ssh.send {show version%0a} |
024 | ssh.recv expect {Version} |
025 | ssh.recv for {3} seconds |
026 | ssh.close |
027 | text.headpointer move to head |
028 | text.tailpointer move to tail |
029 | text.save append to file {C:\snmlipv6\ssh\ssh_out_ipv4~v_i~.txt} |
030 | screen.text at point {10} {~v_y~} string {~v_i~} |
031 | screen.text at point {50} {~v_y~} string {[FE80::1]:22 send 'show version'} |
032 | screen.text at point {300} {~v_y~} string {ssh.recv : ~text.bytes~ Bytes } |
033 | text.delete from headpointer |
034 | |
035 | if.var {v_y} > {100} |
036 | loop.exit |
037 | if.end |
038 | loop.end |
039 | run.end |
| C:\snmlipv6\web\web_nms1.txt |
001 | screen.text at point {150} {30} string {16. Web Test} |
002 | |
003 | screen.text at point {10} {55} string {No.} |
004 | screen.text at point {100} {55} string {github,snml2019.eu5.org web demo} |
005 | screen.line from point {10} {75} to point {630} {75} |
006 | var {i} value {0} |
007 | var {x} value {0} |
008 | var {y} value {0} |
009 | |
010 | var {i} add number {1} |
011 | var {t1} value datetime |
012 | var {y} value number {70+28*~i~} |
013 | screen.text at point {5} {~y~} string {1. http://snml2019.eu5.org/index1.php} |
014 | var {i} add number {1} |
015 | var {t1} value datetime |
016 | var {y} value number {70+28*~i~} |
017 | run.set loglevel {debug} |
018 | web.open {http://snml2019.eu5.org/index1.php} |
019 | web.add var {nic.mac} |
020 | web.get |
021 | |
022 | text.headpointer move to head |
023 | text.tailpointer move to tail |
024 | text.save to file {C:\snmlipv6\web\web_out_snml.eu5.txt} |
025 | screen.text at point {80} {~y~} string {~t1~, text.bytes = ~text.bytes~ bytes.} |
026 | |
027 | var {i} add number {1} |
028 | var {t1} value datetime |
029 | var {y} value number {70+28*~i~} |
030 | screen.text at point {5} {~y~} string {2. https://github.com/snml2019/snml/blob/master/snmlVer.txt} |
031 | |
032 | web.open {https://github.com/snml2019/snml/blob/master/snmlVer.txt} |
033 | web.get |
034 | |
035 | text.headpointer move to head |
036 | text.tailpointer move to tail |
037 | text.save to file {C:\snmlipv6\web\web_out_github.txt} |
038 | var {i} add number {1} |
039 | var {y} value number {70+28*~i~} |
040 | screen.text at point {80} {~y~} string {~t1~, text.bytes = ~text.bytes~ bytes.} |
041 | |
042 | web.close |
043 | |
044 | run.end |
| C:\snmlipv6\sqlite\sqlite_nms1.txt |
001 | screen.set color red {0} green {0} blue {0} |
002 | screen.text at point {150} {30} string {18. sqlite Test: sqlite.open, sqlite.exec, sqlite.save, sqlite.load} |
003 | var {v_y} value {60} |
004 | |
005 | screen.text at point {10} {~v_y~} string {No.} |
006 | screen.text at point {250} {~v_y~} string {Test Information} |
007 | screen.line from point {10} {75} to point {50} {75} |
008 | screen.line from point {70} {75} to point {630} {75} |
009 | |
010 | var {v_time} value datetime |
011 | var {v_i} value {0} |
012 | |
013 | loop.begin |
014 | |
015 | var {v_i} add number {1} |
016 | var {v_y} add number {18} |
017 | screen.text at point {10} {~v_y~} string {~v_i~} |
018 | screen.text at point {70} {~v_y~} string {~v_time~} |
019 | |
020 | sqlite.open {C:\snmlipv6\sqlite\sqlite_test.db} |
021 | sqlite.exec {delete from snml_log} |
022 | sqlite.exec {delete from snml_var} |
023 | sqlite.log {sqlite Test: v_i=~v_i~} |
024 | sqlite.exec {select * from snml_log} |
025 | screen.text at point {200} {~v_y~} string {sqlite.1.log_id=[~sqlite.1.log_id~], sqlite.1.log = [~sqlite.1.log~]} |
026 | |
027 | |
028 | sqlite.save var {v_time} |
029 | sqlite.save var name prefix {sqlite} |
030 | sqlite.exec {select count(*) from snml_var} |
031 | screen.text at point {500} {~v_y~} string {sqlite.1.count(*)=[~sqlite.1.count(*)~]} |
032 | |
033 | sqlite.load var {v_time} |
034 | sqlite.load var name prefix {sqlite} |
035 | |
036 | sqlite.close |
037 | |
038 | |
039 | if.var {v_y} > {200} |
040 | loop.exit |
041 | if.end |
042 | loop.end |
043 | run.end |
| C:\snmlipv6\sys\sys_nms1.txt |
001 | screen.set color red {0} green {0} blue {0} |
002 | screen.text at point {150} {30} string {20. sys Test} |
003 | var {v_y} value {60} |
004 | |
005 | screen.text at point {10} {~v_y~} string {No.} |
006 | screen.text at point {250} {~v_y~} string {Test Information} |
007 | screen.line from point {10} {75} to point {50} {75} |
008 | screen.line from point {70} {75} to point {630} {75} |
009 | |
010 | var {v_time} value datetime |
011 | var {v_i} value {0} |
012 | |
013 | var {v_i} add number {1} |
014 | var {v_y} add number {18} |
015 | screen.text at point {10} {~v_y~} string {~v_i~} |
016 | sys.command {ping www.126.com} |
017 | screen.text at point {70} {~v_y~} string {v_time=~v_time~, sys.command(ping www.126.com), step.bytes=[~step.bytes~], text.bytes=[~text.bytes~]} |
018 | |
019 | var {v_i} add number {1} |
020 | var {v_y} add number {18} |
021 | screen.text at point {10} {~v_y~} string {~v_i~} |
022 | sys.command {ipconfig /all} |
023 | screen.text at point {70} {~v_y~} string {v_time=~v_time~, sys.command(ipconfig /all), step.bytes=[~step.bytes~], text.bytes=[~text.bytes~]} |
024 | |
025 | var {v_i} add number {1} |
026 | var {v_y} add number {18} |
027 | screen.text at point {10} {~v_y~} string {~v_i~} |
028 | sys.execute open {cmd} |
029 | sys.execute send {dir c:\ %0d%0a} |
030 | sys.execute recv expect {snmlipv6} |
031 | screen.text at point {70} {~v_y~} string {v_time=~v_time~, sys.execute(cmd->dir)), step.bytes=[~step.bytes~], text.bytes=[~text.bytes~]} |
032 | sys.execute close |
033 | |
034 | run.end |