Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: VioleTTT56756 en 9 Noviembre 2021, 22:36 pm



Título: necesito ayuda con un problema en python soy nuevo en esto
Publicado por: VioleTTT56756 en 9 Noviembre 2021, 22:36 pm
Código
  1. import subprocess
  2. import optparse
  3.  
  4. parser = optparse.OptionParser()
  5.  
  6. parser.add_option("-i", "--interface", dest = "interface", help="Interface para cambiar Direccion MAC")
  7. parser.add_option("-m", "--mac", dest = "new_mac", help="Nueva Direccion MAC")
  8.  
  9.  
  10. (options, arguments) = parser.parse_args()
  11.  
  12. interface = options.interface
  13. new_mac = options.new_mac
  14.  
  15. print("Cambiando Direccion Mac para " + interface + " a " + new_mac)
  16.  
  17. subprocess.call(["sudo ifconfig", interface, "down"])
  18. subprocess.call(["sudo ifconfig", interface, "hw", "ether", new_mac])
  19. subprocess.call(["sudo ifconfig", interface, "up"])
  20.  

┌──(kali㉿kali)-[~]
└─$ /usr/bin/python /home/kali/Documents/mac-changer.py                                                                                                                                          1 ⨯
Traceback (most recent call last):
  File "/home/kali/Documents/mac-changer.py", line 15, in <module>
    print("Cambiando Direccion Mac para " + interface + " a " + new_mac)
TypeError: cannot concatenate 'str' and 'NoneType' objects

MOD: Etiqueta GeSHi


Título: Re: necesito ayuda con un problema en python soy nuevo en esto
Publicado por: Drakaris en 13 Noviembre 2021, 20:19 pm
Código
  1. import subprocess
  2. import optparse
  3.  
  4. parser = optparse.OptionParser()
  5.  
  6. parser.add_option("-i", "--interface", dest = "interface", help="Interface para cambiar Direccion MAC")
  7. parser.add_option("-m", "--mac", dest = "new_mac", help="Nueva Direccion MAC")
  8.  
  9.  
  10. (options, arguments) = parser.parse_args()
  11.  
  12. interface = options.interface
  13. new_mac = options.new_mac
  14.  
  15. print("Cambiando Direccion Mac para " + interface + " a " + new_mac)
  16.  
  17. subprocess.call(["sudo ifconfig", interface, "down"])
  18. subprocess.call(["sudo ifconfig", interface, "hw", "ether", new_mac])
  19. subprocess.call(["sudo ifconfig", interface, "up"])
  20.  

┌──(kali㉿kali)-[~]
└─$ /usr/bin/python /home/kali/Documents/mac-changer.py                                                                                                                                          1 ⨯
Traceback (most recent call last):
  File "/home/kali/Documents/mac-changer.py", line 15, in <module>
    print("Cambiando Direccion Mac para " + interface + " a " + new_mac)
TypeError: cannot concatenate 'str' and 'NoneType' objects

MOD: Etiqueta GeSHi

Cuando quieres concatenar string con una variable, en python debes de convertir de la salida de esta variable en un string. Para poderlo hacer hay varias formas:

metodo con str():
Código
  1. print("Cambiando Direccion Mac para " + str(interface) + " a " + str(new_mac))
  2.  

metodo 2:
Código
  1. print(f"Cambiando Direccion Mac para {interface} a {new_mac}")
  2.  

Además veo que la salida de algunas de las variables devuelve None. Por eso te dice NoneType

Recomendación al postear:
Te recomiendo que al postear detalles lo más posible el problema. No se especifica que tipo de valores (string,int...) debe de retornar interface ni new_mac. Me imagino que es string pero no estoy seguro.