为什么我一直收到这个错误?我无法解决这个问题。
class Parser:
def __init__(self):
self.connect = ""
self.accept = ""
self.ipport = ""
self.customer = ""
self.iptablestext = open('iptables', 'rb')
def client(self):
with open('stunnel.conf', 'rb') as stunnel:
for line in stunnel:
if line.startswith('[customer-'):
self.customer = (line.split('-')[1].split('-')[0].strip())
elif line.startswith('accept'):
self.accept = (line.split(" = ")[1].strip())
MyParser.ip_collector(self.accept)
elif line.startswith('connect'):
self.connect = (line.split(" = ")[1].strip())
MyParser.write_to_file()
def write_to_file(self):
with open('customer.yml', 'a') as myfile:
myfile.write(self.customer + ":" + "\n accept: " + self.accept + "\n connect: " + self.connect + "\n ipaddr: " + self.ipport + "\n")
myfile.close()
def ip_collector(self, acceptport):
with open('iptables', 'rb') as iptables:
for line in iptables:
if self.accept in line:
self.ipport = (line.split(' -s ')[1].split(' -p ')[0].strip())
我正在尝试将'self.accept'值传递给ip_collector函数,以便我可以为每个客户端搜索单独的ip端口文件。但我似乎无法解决为什么每次运行它都会得到
Traceback (most recent call last):
File "./parserclient.py", line 37, in <module>
MyParser.clear_output(), MyParser.client()
File "./parserclient.py", line 18, in client
MyParser.ip_collector(self.accept)
File "./parserclient.py", line 30, in ip_collector
self.ipport = (line.split(' -s ')[1].split(' -p ')[0].strip())
IndexError: list index out of range
当我将接收端口硬编码到ip collectors函数时,它工作正常。