interaction/infector/__init__.py

49 lines
1.3 KiB
Python

__author__ = 'RemiZOffAlex'
__email__ = 'remizoffalex@mail.ru'
import yaml
import npyscreen
from pyroute2 import NDB
ndb = NDB()
def network_config(ip, mask, gateway):
# ip = IPRoute()
# index = ip.link_lookup(ifname='em1')[0]
# ip.addr('add', index, address='192.168.0.1', mask=24)
# ip.close()
# ip = IPDB()
# with ip.interfaces.br0 as br0:
# em1.add_ip('{ip}/{mask}'.format(ip=ip, mask=mask))
# ip.release()
with ndb.interfaces['br0'] as br0:
address = '{ip}/{mask}'.format(ip=ip, mask=mask)
br0.add_ip(address).commit()
ndb.routes.create(dst='0.0.0.0/0', gateway=gateway).commit()
def TestApp(*args):
# These lines create the form and populate it with widgets.
# A fairly complex screen in only 8 or so lines of code - a line for each control.
NetworkView = npyscreen.ActionForm(name = "SaaS",)
ip = NetworkView.add(npyscreen.TitleText, name = "IP:",)
mask = NetworkView.add(npyscreen.TitleText, name = "Netmask:",)
gateway = NetworkView.add(npyscreen.TitleText, name = "Gateway:",)
# This lets the user interact with the Form.
NetworkView.edit()
data = {
'ip': ip.value,
'mask': mask.value,
'gateway': gateway.value
}
with open('/root/network.yaml', 'w') as fd:
yaml.dump(data, fd)
network_config(**data)
return data