| 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\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 |