pythonipping
(1)安装telnetd(即telnet-server):apt-get install telnetd
(2)安装xinetd(telnet-server的运行需要由xinetd来管理):apt-get install xinetd
(3)配置telnet文件:vi /etc/xinetd.d/telnet
(4)开启xinetd:service xinetd start
#!/usr/bin/env python
#coding=utf-8
import sys
import telnetlib
import os
import time
enter='\n'
filehead="D:\\file\\"
filetail=".txt"
def getfile(filename):
f=open(filename,'w+')
while(1):
ret=tn.read_until('#',1)
f.write(ret)
if '#' in ret:
break
else:
for i in range(10):
tn.write(' ')
time.sleep(0.1)
f.close()
#check the file is existd or not
def get(string):
tn.write(string+enter)
filename=filehead+string.replace(' ','-')+filetail
getfile(filename)
print string+' information is in '+filename
print 'Router#'
def login():
password=sys.argv[2]
#get ordinary certificate
tn.read_until("Password: ",1)
tn.write(password + enter)
#want to get admin certificate
tn.read_until("Router>",1)
tn.write('en'+enter)
#get admin certificate
tn.read_until("Password: ",1)
tn.write(password + enter)
#enter route
print tn.read_until("Router#",1)
def options():
showstring=["show version",
"show arp",
"show run",
"show running-config",
"show startup-config",
"show ip interface brief",
"show ip route"]
while 1:
string=raw_input()
string=string.lower()
if string=='exit':
tn.write('exit'+enter)
print 'exit success'
break
elif string in showstring:
get(string)
else:
print 'wrong input'
print 'please enter an order'
if __name__ == "__main__":
Host=sys.argv[1]
tn=telnetlib.Telnet(Host)
login()
options()
使用方法是:python *.py ip号 登陆密码
② python编写ping程序出现socket.error: [Errno 10013] 错误
错误号的解释
以一种访问权限不允许的方式做了一个访问套接字的尝试。
试试管理员权限,不行换到xp上试试。
③ python2.7 请帮忙写一个函数确定某个ip是否能ping通。我的这个不行
你这样直接使用os.system("ping")==0是不行的,执行ping命令后跟cmd执行一样,也会返回类似于ttl=245 time=36.798 ms这样的信息。所以你要做的是:
在os.system("ping -n 1 "+ip)的返回结果中查找是否存在"TTL="这样的字符,如果存在表示ping通了,不存在就表示超时
④ python 判断ip是否能ping通
python编程下,检查IP是否能ping通,并且分别导入两个文件,代码如下:
#!/usr/bin/python
#-*- coding:gb18030 -*-
'''
Created on 2015-7-7
#判断文件中的ip是否能ping通,并且将通与不通的ip分别写到两个文件中
#文件中的ip一行一个
'''
import time,os
start_Time=int(time.time()) #记录开始时间
def ping_Test():
ips=open('host.txt','r')
ip_True = open('ip_True.txt','w')
ip_False = open('ip_False.txt','w')
count_True,count_False=0,0
for ip in ips.readlines():
ip = ip.replace('\n','') #替换掉换行符
return1=os.system('ping -n 2 -w 1 %s'%ip) #每个ip ping2次,等待时间为1s
if return1:
print 'ping %s is fail'%ip
ip_False.write(ip) #把ping不通的写到ip_False.txt中
count_False += 1
else:
print 'ping %s is ok'%ip
ip_True.write(ip) #把ping通的ip写到ip_True.txt中
count_True += 1
ip_True.close()
ip_False.close()
ips.close()
end_Time = int(time.time()) #记录结束时间
print "time(秒):",end_Time - start_Time,"s" #打印并计算用的时间
print "ping通数:",count_True," ping不通的ip数:",count_False
ping_Test()
⑤ python3 判断IP地址是否ping通
os.system(‘comand’) 会执行括号中的命令,如果命令成功执行,这条语句返回0,否则返回1。
要想得到标准输出,可以使用os.popen(cmd)
import os
p=os.popen("ping 192.168.2.129")
x=p.read()
p.close()
if x.count('temeout'):
print("ping不通")
else:
print("ping通了")
⑥ python 怎样去编写一个ping wwww.baidu.com -n 8就是ping之后能带参数的
其实在pip是有一个叫做的ping的项目的,何必折腾自己呢?安装好了后,可以这样简单使用即可,
importping
ping.verbose_ping(dest_addr,timeout=2,count=4,psize=64)
另外如果要实现更复杂的东西,还有很多更底层的函数方便你使用。
⑦ python取MYSQL数据库里的IP来PING,将结果再写到数据库中,但是第二次再取IP时便出错,取出来是空的
这个问题相当好解决啊。你在插数据的时候,是不是定义了ID,让ID自动增加就可以实现添加而不是覆盖。
设计数据库表的时候,第一个字段ID让它自增方式。在python写insert语句时,勉强将你自己定义的ID值放进去。就是insert
table
()
values()
前面那个括号里不要写ID,后面values也将ID值去掉
⑧ 怎样使用python来ping
importos
importre
importtime
importsys
importsubprocess
lifeline=re.compile(r"(d)received")
report=("Noresponse","PartialResponse","Alive")
printtime.ctime()
forhostinrange(1,10):
ip="192.168.1."+str(host)
pingaling=subprocess.Popen(["ping","-q","-c2","-r",ip],shell=False,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
print"Testing",ip,
while1:
pingaling.stdout.flush()
line=pingaling.stdout.readline()
ifnotline:break
igot=re.findall(lifeline,line)
ifigot:
printreport[int(igot[0])]
printtime.ctime()