Python Glossary English

Python 3.3+Linux · macOSsocketфункция

socket.sethostname()

имена и адреса

Меняет сетевое имя машины на Linux и macOS; требует прав администратора. На Windows функции нет.

Синтаксис

socket.sethostname(name)

Без прав root (CAP_SYS_ADMIN) вызов падает PermissionError. Имя меняется для всей системы (в Linux — для текущего UTS-пространства имён), а не для процесса, и только до перезагрузки: /etc/hostname функция не трогает. На Windows атрибута нет вовсе, поэтому переносимый код проверяет hasattr(socket, 'sethostname').

Примеры

import socket
print(hasattr(socket, 'sethostname'))  # → ? True на Unix, False на Windows
try:
    socket.sethostname('x' * 300)  # слишком длинное имя: откажут даже root
except OSError as e:
    print(type(e).__name__)  # → ? PermissionError без прав, OSError у root

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности