Python 3.x | Discord Bot | Multi-Line Message Problem

Code-Stücke können hier veröffentlicht werden.
Soloco
User
Beiträge: 1
Registriert: Mittwoch 2. August 2017, 13:34

Python 3.x | Discord Bot | Multi-Line Message Problem

Beitragvon Soloco » Mittwoch 2. August 2017, 13:40

Hallo, ich habe vor kurzen angefangen einen Discord Python bot zu schreiben mit der discord.py lib, darauf hin wollte ich mit der python-nmap lib einen "Port Scanner" schreiben der das Ergebnis in den Discord schreibt.




"Port Scanner Teil"
  1. # Imports
  2. #####################################
  3. import nmap
  4. #####################################
  5.  
  6.  
  7.  
  8.  
  9. #ENV
  10. ##########################################################################################
  11. nm = nmap.PortScanner()
  12. nmapout = ("")
  13. ##########################################################################################
  14.  
  15.  
  16. def nmaps(ip, portr):
  17.     global nmapout
  18.     try:
  19.         nm.scan(ip, portr)
  20.         for host in nm.all_hosts():
  21.             print('----------------------------------------------------')
  22.             print('Host : %s (%s)' % (host, nm[host].hostname()))
  23.             print('State : %s' % nm[host].state())
  24.  
  25.             for proto in nm[host].all_protocols():
  26.                 print('----------')
  27.                 print('Protocol : %s' % proto)
  28.  
  29.                 lport = list(nm[host][proto].keys())
  30.                 lport.sort()
  31.                 for port in lport:
  32.                     print('port : %s\tstate : %s' % (port, nm[host][proto][port]['state']))
  33.                     print("----------------------------------------------------")
  34.            
  35.  
  36.     except:
  37.         print("O.o, fucking errors (ノಠ益ಠ)ノ彡┻━┻")



"Ausgabe"
  1. @dis_bot.command(aliases=["nscan", "nmap"])
  2. async def nmap_module(*args):
  3.         pymap.nmaps(*args)
  4.         return await dis_bot.say(pymap.nmapout)


Das Problem ist das ich es nicht über print ausgeben kann sondern ich muss es über

Code: Alles auswählen

return await dis_bot.say()
tun.
Und jetzt weiß ich nicht wie ich das anstellen soll.

Mit der oben gezeigte version bekomme ich als output:

{'nmap': {'command_line': 'nmap -oX - -p 80 -sV x.x.x.x', 'scaninfo': {'tcp': {'method': 'syn', 'services': '80'}}, 'scanstats': {'timestr': 'Wed Aug 2 14:27:48 2017', 'elapsed': '2.44', 'uphosts': '1', 'downhosts': '0', 'totalhosts': '1'}}, 'scan': {'x.x.x.x': {'hostnames': [{'name': '', 'type': ''}], 'addresses': {'ipv4': 'x.x.x.x'}, 'vendor': {}, 'status': {'state': 'up', 'reason': 'echo-reply'}, 'tcp': {80: {'state': 'filtered', 'reason': 'no-response', 'name': 'http', 'product': '', 'version': '', 'extrainfo': '', 'conf': '3', 'cpe': ''}}}}}

Ich brauche :

----------------------------------------------------
Host : x.x.x.x
State : up
----------
Protocol : tcp
port : 80 state : filtered
----------------------------------------------------





Ich bedanke mich schonmal im voraus, für eure ideen ^^



Discord.py = https://github.com/Rapptz/discord.py
python-nmap = https://github.com/johanlundberg/python-nmap

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder