import getpass
import sys
import telnetlib
import re
import smtplib
print "Pasul 1"
HOST = "route-views.routeviews.org"
user = "rviews"
password = ""
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ", 5)
tn.write(user + "\r\n")
tn.read_until("Password: ", 5)
tn.write(password + "\r\n")
print tn.read_until(">", 10)
tn.write("show ip route 192.0.2.1"+"\r\n")
y = tn.read_until("free", 10)
print y
tn.write("exit"+ "\r\n")
tn.close()
print "Pasul 2"
for x in range(1,99999):
m = re.search(' Known via "bgp xxxxx"', y)
if m:
print (m.group(0))
break
else:
print False
break
x必须是介于1和99999之间的数字 如果我写'Known via“bgp 6447”,它会找到并打印它,但是如果我写'Known via“bgp xxxxx”,它会返回false。有人知道为什么吗?你知道吗
输出如下:
路线视图>
显示ip路由192.0.2.1
192.0.2.1/32的路由条目
已知通过“bgp 6447”,距离20,公制0
标签19214,外部类型
上次更新时间为208.74.64.40 4w0d之前
路由描述符块:
208.74.64.40,从208.74.64.40开始,4周前
路由度量为0,流量共享计数为1
作为啤酒花1
路线标签19214
MPLS标签:无
路线视图>
如果使用regexp的方式完全错误,请尝试更改整个部分:
包括以下内容:
注意
r
在表达式之前,这里很重要。你知道吗可能您应该阅读python
re
模块的文档:https://docs.python.org/2/library/re.htmlUpd.顺便说一下,您的版本不起作用,因为字符串中的
x
被解释为文字"x"
,而不是变量x
的值。如果要将变量放入字符串中,应使用如下示例中的格式:如果我测试,它会给我“真的”
相关问题 更多 >
编程相关推荐