Как я могу использовать Python для получения имени системы?

Я пишу чат-программу для локальной сети. Я хотел бы иметь возможность идентифицировать компьютеры и получить имя компьютера, заданное пользователем, с помощью Python.

    9 Solutions collect form web for “Как я могу использовать Python для получения имени системы?”

    Используйте socket и его функциональность gethostname() . Это получит hostname компьютера, на котором запущен интерпретатор Python:

     import socket print(socket.gethostname()) 

    Оба они довольно портативны:

     import platform platform.node() import socket socket.gethostname() 

    Любые решения, использующие переменные среды HOST или HOSTNAME , не являются переносимыми. Даже если он работает в вашей системе при запуске, он может не работать при работе в специальных средах, таких как cron.

    Вы, вероятно, загрузите модуль os, так что другое предложение будет:

     import os myhost = os.uname()[1] 

    os.getenv('HOSTNAME') и os.environ['HOSTNAME'] не всегда работают. В заданиях cron и WSDL HTTP HOSTNAME не установлен. Используйте это вместо этого:

     import socket socket.gethostbyaddr(socket.gethostname())[0] 

    Он всегда (даже в Windows) возвращает полное имя хоста, даже если вы определили короткий псевдоним в / etc / hosts .

    Если вы определили псевдоним в / etc / hosts, то socket.gethostname() вернет псевдоним. platform.uname()[1] делает то же самое.

    Я столкнулся с ситуацией, когда вышеупомянутое не сработало. Это то, что я сейчас использую:

     import socket if socket.gethostname().find('.')>=0: name=socket.gethostname() else: name=socket.gethostbyaddr(socket.gethostname())[0] 

    Сначала он вызывает gethostname, чтобы увидеть, возвращает ли он что-то, похожее на имя хоста, если оно не использует мое исходное решение.

    Как насчет :

     import platform h = platform.uname()[1] 

    На самом деле вы можете посмотреть на весь результат в platform.uname()

    Если я прав, вы ищете функцию socket.gethostname:

     >> import socket >> socket.gethostname() 'terminus' 

    socket.gethostname() может сделать

    В некоторых системах имя хоста устанавливается в среде. Если это так, то модуль os может вывести его из среды через os.getenv . Например, если HOSTNAME – это переменная среды, содержащая то, что вы хотите, то получится следующее:

     import os system_name = os.getenv('HOSTNAME') 

    Обновление. Как отмечено в комментариях, это не всегда работает, так как не всякая среда настроена таким образом. Я считаю, что в то время, когда я сначала ответил на это, я использовал это решение, поскольку это было первое, что я нашел в веб-поиске, и это работало для меня в то время. Из-за отсутствия переносимости я, вероятно, не использовал бы это сейчас. Однако я оставляю этот ответ для справки. FWIW, он устраняет необходимость в других импортах, если ваша среда имеет имя системы, и вы уже импортируете модуль os. Проверьте его – если он не работает во всех средах, в которых вы ожидаете, что ваша программа будет работать, используйте одно из других решений.

    Мне понадобилось имя ПК для использования в моем файле конфигурации PyLog, а библиотека сокетов недоступна, но os-библиотека.

    Для Windows я использовал:

     os.getenv('COMPUTERNAME', 'defaultValue') 

    Где defaultValue – это строка для предотвращения возврата None

     
    Interesting Posts for Van-Lav

    Как получить себя в Python-метод без его явного принятия

    Теперь, когда API конверсии прекращен, есть ли способ конвертировать PDF-файлы в образ appengine / python?

    Opencv – Карта глубины из некалиброванной стереосистемы

    Как сбросить курсор в начало той же строки в Python

    Как устранить знак дополнительного минуса при округлении отрицательных чисел к нулю в numpy?

    Автоматически воспроизводить звук в ноутбуке IPython

    Измените текущую среду процесса LD_LIBRARY_PATH

    Как преобразовать текстовый файл в список в Python

    Почему «% -d» или «% -e» удаляют ведущее пространство или ноль?

    Создайте список каталогов в стиле дерева в Python

    Когда использовать класс matplotlib.pyplot и когда использовать объект plot (matplotlib.collections.PathCollection)

    Какова наилучшая структура проекта для приложения Python?

    тип shelve db не может быть определен, whichdb не распознает gdb

    JSON кодирует / декодирует GTK перечисления

    Настройка импорта по умолчанию Jupyter

    Python - лучший язык программирования в мире.