Básicamente, tengo un par de computadoras con Windows en mi red que ejecutarán un script de Python. Se debe utilizar un conjunto diferente de opciones de configuración en la secuencia de comandos según el equipo que ejecute esta secuencia de comandos.
¿Cómo obtendría ese nombre de computadora en el script de Python?
Digamos que el script se estaba ejecutando en una computadora llamada DARK-TOWER, me gustaría escribir algo como esto:
>>> python.library.get_computer_name()
'DARK-TOWER'
¿Existe una biblioteca estándar o de terceros que pueda usar?
python
windows
networking
Eric Palakovich Carr
fuente
fuente
socket.gethostname()
devuelve la libcgethostname()
, mientras queplatform.node()
devuelve,platform.uname()[1]
que está algo relacionado conos.uname()
las llamadas a la libcuname()
... Parece que podrían terminar en el mismo lugar, pero toman caminos bastante diferentes para llegar allí y no estaría confiando en el valor de ser el mismo en diferentes plataformas.os.environ['COMPUTERNAME']
devolverá todo en mayúsculas, mientras queplatform.node()
ysocket.gethostname()
puede devolver mayúsculas y minúsculas.fuente
De https://mail.python.org/pipermail/python-list/2006-April/397494.html
fuente
None
para mí en Ubuntu 16.04. Curiosamente,HOSTNAME
es una variable de entorno definida en bash, pero ambosos.getenv('HOSTNAME')
devuelveNone
también, mientras quesocket.gethostname()
devuelve la cadena correcta.Como dijo Eric Palakovich Carr, podrías usar estas tres variantes.
Prefiero usarlos juntos:
Lo prefiero cuando desarrollo aplicaciones de plataforma cruzada para estar seguro;)
fuente
if n1==n2 or n1==n3: return n1 elif n2==n3: return n2 else: raise Exception("Computer names are not equal to each other")
(enn1
lugar den2
)Dado que las secuencias de comandos de Python se ejecutan con seguridad en un sistema Windows, debe usar la API Win32 GetComputerName o GetComputerNameEx
Puede obtener el nombre DNS completo, el nombre NETBIOS o una variedad de cosas diferentes.
O:
fuente
Apuesto a que gethostname funcionará de maravilla.
fuente
fuente