Найти имя компьютера — Python
Существует несколько способов найти имя компьютера на Python. Модуль «socket» в Python обеспечивает доступ к интерфейсу сокетов BSD . Он доступен для всех современных Unix-систем: Windows, Mac OS X, BeOS, OS / 2 и, возможно, дополнительных платформ. Чтобы получить имя хоста компьютера, вы можете использовать функцию сокета и его функцию gethostname(). Gethostname() возвращает строку , содержащую имя хоста машины , на которой интерпретатор Python в настоящее время выполняется.
import socket print(socket.gethostname())
import socket print(socket.gethostbyaddr(socket.gethostname())[0])
Как получить полное имя хоста?
Gethostname() не всегда возвращает полное доменное имя. Функция socket.getfqdn ([name]) возвращает полное доменное имя для имени. Если имя опущено или пустое, оно интерпретируется как локальный хост.
import socket print (socket.getfqdn("209.191.88.254"))
d.mx.mail.yahoo.com
Модуль платформы в Python включает инструменты для просмотра информации о версии аппаратного обеспечения, операционной системы и интерпретатора платформы, где работает программа. Функция platform.node() возвращает сетевое имя компьютера.
import platform print(platform.node())
Любые решения, использующие переменные среды HOST или HOSTNAME, не являются переносимыми. Даже если он работает в вашей системе при запуске, он может не работать при работе в специальных средах, таких как cron.
Как получить имя пользователя компьютера Python
Модуль os в Python предоставляет переносимый способ использования функциональных возможностей, зависящих от операционной системы. Команда os.uname() возвращает 5-кортеж, содержащий информацию, идентифицирующую текущую операционную систему, но она доступна только в Unix-подобных системах.
import os myhost = os.uname()[1] print(myhost)
Как узнать полное имя владельца текущей учетной записи?
На работе у каждого своя учетная (windows) запись в домене.
Я для своей программы хочу выводить ФИО автоматически, благо каждая учетка подписана.
Но все способы которые нашел выдают только имя аккаунта, а как получить имя владельца учетки?
import win32api import win32net user_properties = win32net.NetUserGetInfo(None, win32api.GetUserName(), 20)
но он выдает ошибку:
user_properties = win32net.NetUserGetInfo(None, win32api.GetUserName(), 20) pywintypes.error: (2221, 'NetUserGetInfo', 'Не найдено имя пользователя.')
Я так понимаю, что проблема в том, что на самом ПК такого юзера нет, а берется он из домена.
- Вопрос задан более года назад
- 170 просмотров
1 комментарий
Простой 1 комментарий
Как получить имя учётки

Как получить имя файла?
Подскажите пожалуйста, есть ли возможности получить не весь путь к файлу, а только его имя? .
Как получить имя файла из формы
Здравствуйте! Есть форма, на основе некоторой модели в котором такое поле: file =.
Как получить имя слайдера и его значение
Здравствуйте! Подскажите пожалуйста, как получить в print() два переменных, одну с имением.
Как в билдере получить с сервера (MySQL 5.1, имя базы «skola», имя table «info») имя столбцов и имя строк
Доброва времены суток Как в билдере получить с сервера (MySQL 5.1, имя базы "skola", имя table.
Am I evil? Yes, I am!
![]()
![]()
18966 / 9661 / 2710
Регистрация: 21.10.2017
Сообщений: 21,465
os.getlogin()
101 / 84 / 25
Регистрация: 21.05.2019
Сообщений: 471
iSmokeJC, Тоже самое что и моё выдает, а мне надо получить вот это имя что выделил
Am I evil? Yes, I am!
![]()
![]()
18966 / 9661 / 2710
Регистрация: 21.10.2017
Сообщений: 21,465
RSAX, ты не знаешь, как из строки получить нужное?
101 / 84 / 25
Регистрация: 21.05.2019
Сообщений: 471
iSmokeJC, так а где строка, твой запрос выводит только мой логин(имя компа), но не имя учётки
Am I evil? Yes, I am!
![]()
![]()
18966 / 9661 / 2710
Регистрация: 21.10.2017
Сообщений: 21,465
101 / 84 / 25
Регистрация: 21.05.2019
Сообщений: 471
iSmokeJC, да я читал это, там люди не правильно используют формулировки, точнее раньше такого и не было до винды 10, они не имя пользователя выводят, а имя компа = логин учётки, а есть ещё имя учётки
1525 / 494 / 58
Регистрация: 10.04.2009
Сообщений: 8,319
ТС, скажите, решилось, как?
1 2 3
import os print(__import__("os").getenv('username')) print(os.getlogin())
у меня тоже одинаковое выдаёт
Сообщение от iSmokeJC 
ты не знаешь, как из строки получить нужное?
q8902
q8902
не получается))
192 / 136 / 62
Регистрация: 23.05.2013
Сообщений: 299

Сообщение было отмечено RSAX как решение
Решение
1 2 3 4 5
import win32api import win32net user_properties = win32net.NetUserGetInfo(None, win32api.GetUserName(), 20) print(user_properties.get("full_name"))
1525 / 494 / 58
Регистрация: 10.04.2009
Сообщений: 8,319
Сообщение от menreiven 
import win32api
import win32net
хороши звери-даже без пипа импортнулись)) спс
я так понимаю, что кроме «full_name» ещё можно что-то заполучить-где глянуть? спс
192 / 136 / 62
Регистрация: 23.05.2013
Сообщений: 299
![]()
5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Сообщение от RSAX 
точнее раньше такого и не было до винды 10
Полное имя учетной записи было всегда.
Первые два способа выдают стандартный username залогинившегося пользователя.
1 2 3 4 5
>>> print(__import__("os").getenv('username')) Garry >>> import os >>> os.getlogin() 'Garry'
Последний — через winapi — полное имя (по сути никому не нужное). Я, например, это поле никогда не заполнял и оно у меня пустое.
1 2 3
>>> user_properties {'name': 'Garry', 'full_name': '', 'comment': '', 'flags': 66081, 'user_id': 1000} >>>
Добавлено через 2 минуты
Сообщение от RSAX 
мой логин(имя компа)
Логин и имя компа это разные вещи. Если у тебя они одинаковые, то это твои проблемы. Нужно было после магазина поменять.
| Меню пользователя @ Fudthhh |
| Читать блог |
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Получить имя процесса (такое же как имя задачи в «Диспетчере задач»)
Здравствуйте! Пишу программу, которая будет отслеживать мои действия и собирать статистику по.

Получить имя моего процесса (получить имя меня)
Работает мой код. Мне нужно получить имя моего процесса — ***.exe
Как получить имя проекта
Добрый день, я пишу игровой движок, и щас пишу шаблон для VS. Еасть конфиг файл, в котором есть.
Как получить имя переменной?
Для отладки кода появилась необходимость получать имена переменных. Это я могу сделать но только.

Как получить имя столбца
Подскажите пожалуйста как получить имя столбца таблицы, запроса и вывести его в Debug.Print
Как узнать имя накопителя, на котором стоит ОС
Ну хорошо, а если мне надо открыть какой-то файл из папки «Документы», при этом подставив название диска, то как реализовать это?
7 фев в 16:01
А «Документы» вообще не в appdata. Про выяснение расположения пользовательских папок я писал здесь: Как получить пути к стандартным папкам пользователя (Рабочий стол, Загрузки и т.п.)?
7 фев в 16:21
В пути вижу упоминание временного каталога. Он хранится в переменной %TMP% , если что.
8 фев в 0:04
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
В моем случае помогло os.path.expanduser(‘~’) . Пример использования:
x = os.path.expanduser('~') print(x)
C:\Users\KakaBik
Насколько я понял, работает это одинаково и на Linux, и на MacOS. Только пути будут разные
Отслеживать
ответ дан 8 фев в 14:49
45 5 5 бронзовых знаков
В вопросе одно, в комментариях другое, в ответе третье. Бардак какой-то. Ну и каталог пользователя может находиться не на системном диске
8 фев в 14:52
Нет, каталог пользователя не может быть перемещён. Он всегда будет только на том диске, где система. Могут быть перемещены только папки в каталоге например: «Рабочий стол», «Загрузки» и другие. Спасибо за ссылку на ваш ответ, очень информативно
8 фев в 15:25
Может-может, хотя делать это и не рекомендуется. Вот упоминание такого перемещения на сайте Microsoft есть, например learn.microsoft.com/en-US/troubleshoot/windows-server/…