刚刚访问演示服务器,可是火狐提示“Unable to connect”错误,这是肿么回事呢?
暗
暗香
@暗香
-
演示服务器现在不能用了吗? -
分享一个自己编写的脚本 进程监听端口列表 Windows平台[quote author=mrshelly link=topic=2704.msg9105#msg9105 date=1324437122]
psutil 官方没有放出 编译版本 相当麻烦啊...
自己编译也很麻烦...
[/quote]
现在已放出了编译版本,首页上有2.7和3.2的下载链接。 -
分享一个自己编写的脚本 进程监听端口列表 Windows平台[quote author=digitalsatori link=topic=2704.msg9102#msg9102 date=1324369661]
试试 http://code.google.com/p/psutil/ 模块,你可以更优雅的实现你要的功能,而且更重要的是它是夸平台的。
[/quote]
谢谢你的建议,看了psutil包的介绍,功能很强大。在系统管理上会很有用。 -
分享一个自己编写的脚本 进程监听端口列表 Windows平台[quote author=mrshelly link=topic=2704.msg9101#msg9101 date=1324369221]
<br />...<br />>>> pop = subprocess.Popen('cmd /c dir', stdin=subprocess.PIPE, stdout=subproces<br />s.PIPE, close_fds=False)<br />>>> print pop.stdout.read()<br />...<br />
[/quote]
谢谢你的提示,通过使用管道很好的处理了这个问题。 -
分享一个自己编写的脚本 进程监听端口列表 Windows平台谢谢。有没有办法把popen出的进程输出重定向到内存,而不用在磁盘建立临时文件?
-
分享一个自己编写的脚本 进程监听端口列表 Windows平台原打算使用StringIO对象,但是popen报错,说StringIO对象没有fileno属性,只能替换成文件对象。不知道各位有没有可以替代的方法,使用内存,不用在磁盘上生成临时文件。
-
分享一个自己编写的脚本 进程监听端口列表 Windows平台主要的思路是综合Windows下的两个命令“netstat”和“tasklist”的输出,分析出本机上的进程都监听了哪些端口。
-
分享一个自己编写的脚本 进程监听端口列表 Windows平台分享一个自己编写的脚本,用于查看进程都监听了哪些端口。
代码如下:from subprocess import Popen as popen<br />import re<br />import os<br /><br />fname = 'tmp.txt'<br />fout = open(fname, 'wb')<br />p = popen('netstat -nao', stdout=fout)<br />p.wait()<br />p = popen('tasklist', stdout=fout)<br />p.wait()<br />fout.close()<br /><br />fin = open(fname, 'rb')<br />buf = fin.read()<br />fin.close()<br />os.remove(fname)<br /><br />p1 = ':(\d{1,5}) +?.+?LISTENING +?(\d{1,5})'<br />p2 = '(.+?) +?(\d{1,5}) Console|(.+?) +?(\d{1,5}) Services'<br /><br />ports = {}<br />for i in re.finditer(p1, buf):<br /> _port = i.group(1)<br /> _pid = i.group(2)<br /> if not ports.has_key(_pid):<br /> ports[_pid] = [_port]<br /> else:<br /> ports[_pid].append(_port)<br />names = {}<br />c = 0<br />for i in re.finditer(p2, buf):<br /> _name = i.group(1)<br /> _pid = i.group(2)<br /> if _name:<br /> names[_pid] = _name<br /> else:<br /> _name = i.group(3)<br /> _pid = i.group(4)<br /> names[_pid] = _name<br /><br />print '-' * 79<br />for d in names:<br /> if ports.has_key(d):<br /> print 'Process', names[d], '(pid %s)' % d, 'ports:', ', '.join(ports[d])<br />print '-' * 79<br />raw_input('Press ENTER key to continue ...')<br />
使用管道,替换掉前边创建文件,读写文件的过程。buf = ''<br />p = popen('netstat -nao', bufsize=1024, stdout=pipe)<br />buf += p.stdout.read()<br />p = popen('tasklist', bufsize=1024, stdout=pipe)<br />buf += p.stdout.read()
感谢[b]mrshelly[/b]的提示。