나는 기본적으로 AWS의 모든 EIP를 수집하고 하나씩 스캔하여 작동하는 libnmap 스캐너 스크립트, 수집하는 기능을 가지고 EIP의 모습을 모든 :한 번에 한 요소의 목록 내용을 메서드에 전달하는 방법은 무엇입니까?
def gather_public_ip():
ACCESS_KEY = config.get('aws','access_key')
SECRET_KEY = config.get('aws','secret_key')
regions = regions = ['us-west-2','eu-central-1','ap-southeast-1']
all_EIP = []
for region in regions:
client = boto3.client('ec2',aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY,region_name=region,)
addresses_dict = client.describe_addresses()
for eip_dict in addresses_dict['Addresses']:
if 'PrivateIpAddress' in eip_dict:
print eip_dict['PublicIp']
all_EIP.append(eip_dict['PublicIp'])
print all_EIP
return all_EIP
이 기능은 기본적으로 나에게 보이는 목록을 반환 추천
['22.22.124.141', '22.21.149.191', '22.11.132.122', '22.11.227.241', '22.34.28.112', '22.34.211.227', '22.27.21.233', '22.24.199.122', '22.11.113.171', '22.21.11.8', '22.33.31.14', '22.37.19.213', '22.24.121.112', '22.32.121.132', '22.24.21.1', '22.34.72.198']
제가 상기 방법은 다음과 같다 내 실제 스캐너 기능에 전달 호출되는 주요 기능 :
s = Scanner(config)
# Execute Scan and Generate latest report
net_range = gather_public_ip() # config.get('sources','networks') ## Call DEF
#print type(net_range)
r = s.run(net_range)
s.save() # save to pickle
,451,515,
은 스캐너 클래스는 다음과 같습니다 나는 그래서 nmap은 그것을 처리 할 수있는 하나 실행 방법을 하나의 목록에서 값을 전달할 수있는
class Scanner(object):
"""Container for all scan activies"""
def __init__(self,cp):
self.config = cp # read in ConfigParser object to get settings
self.report = None
def gather_targets(self):
"""Gather list of targets based on configured sources"""
pass
def run(self, targets="" ,options="-Pn"):
#start a new nmap scan on localhost with some specific options
syslog.syslog("Scan started")
parsed = None
nmproc = NmapProcess(targets,options)
rc = nmproc.run()
사람이 바로 지금, 부분 좀 도와 주시겠습니까 그것은 단지 멍하니 앉아있다
@DmitryTokarev 당신이 그것을 읽는 동안 왜 제목과 태그도 수정하지 않았습니까? – gboffi
@gboffi missed it :( –
'NmapProcess'가 한 번에 오직 하나의 IP 주소만을 다룰 수 있다면 _list comprehension_,'r = [s.run (ip) for net_range]'를 사용할 수 있습니다. 물론 객체 처리해야 할 것은 메소드에 의해 반환 된 객체의리스트가 될 것입니다. – gboffi