Контакты
Местоположение
Беларусь, Гомельская обл., Мозырь

Наибольший вклад в теги

Все теги (47)

Лучшие ответы пользователя

Все ответы (24)
  • Как создать несколько мостов на один сетевой интерфейс?

    @eminsk
    программирую на python
    Проблема в том, что вы пытаетесь добавить один и тот же физический интерфейс (enp42s0) к нескольким мостам одновременно, что невозможно. Сетевой интерфейс может быть членом только одного моста:
    Создайте один мост (например, br0) и добавьте в него физический интерфейс enp42s0.
    Создайте виртуальные интерфейсы (VLAN или macvlan) поверх моста br0 с нужными MAC-адресами.
    Используйте эти виртуальные интерфейсы для создания PPPoE соединений.
    auto enp42s0
    iface enp42s0 inet manual
    
    auto br0
    iface br0 inet manual
        bridge_ports enp42s0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
    
    auto macvlan0
    iface macvlan0 inet manual
        pre-up ip link add link br0 macvlan0 type macvlan
        post-down ip link del macvlan0
        hwaddress e2:3f:26:5c:8d:45
    
    auto macvlan1
    iface macvlan1 inet manual
        pre-up ip link add link br0 macvlan1 type macvlan
        post-down ip link del macvlan1
        hwaddress e2:3f:26:5c:8d:44
    
    auto macvlan2
    iface macvlan2 inet manual
        pre-up ip link add link br0 macvlan2 type macvlan
        post-down ip link del macvlan2
        hwaddress e2:3f:26:5c:8d:43
    Ответ написан
    Комментировать
  • Что делать, если не скачивается видео из youtube (yt_dlp)?

    @eminsk
    программирую на python
    зачем тебе даже python просто скачай с официального сайта
    https://github.com/yt-dlp/yt-dlp/releases/download...

    и просто запусти yt-dlp -f bestvideo+bestaudio/best и твоя ссылка youtube
    не забывай еще скачать ffmpeg.exe
    и обновлять yt-dlp -U для выхода новых версий и все
    Тебе даже python не подобится так как скомпилировали для тебя
    Ответ написан
    2 комментария
  • Как отображать графические объекты в зависимости от заданной конфигурации?

    @eminsk
    программирую на python
    Для оптимизации такой задачи можно использовать паттерн Фасад, который позволит скрыть сложность системы от пользователя и позволит ему работать с упрощенным интерфейсом. В вашем случае, можно создать класс узла, который будет иметь свойства, описывающие его состояние (клиент, сервер и т.д.), а также методы для отображения и скрытия объекта. Затем можно создать класс-фасад, который будет управлять отображением всех узлов на топологии сети в зависимости от заданных параметров. Таким образом, программа будет загружать только те объекты, которые необходимы для текущей конфигурации сети, что позволит сократить время загрузки и использование оперативной памяти.
    Ответ написан
    1 комментарий
  • Число вместо сроки при запросе regex?

    @eminsk
    программирую на python
    SELECT 
        b.Cargo, 
        count(b.Cargo), 
        REGEXP_SUBSTR(b.Cargo, '[А-Яа-яЁё]+') AS Category
    FROM base b
    GROUP BY b.Cargo
    Ответ написан
    Комментировать
  • Возможно ли скрыть свой IP адрес в локальной сети?

    @eminsk
    программирую на python
    1. SoftEther — это многофункциональный VPN-сервер, который поддерживает различные протоколы. Он также может быть настроен для работы в локальной сети и позволяет скрывать IP-адреса.
    2. Squid — это прокси-сервер, который может быть установлен на одном из компьютеров в сети. Он позволяет перенаправлять трафик через себя и скрывать реальные IP-адреса других устройств.

    3. Данный код на python и скрывает/изменяет локальный ip адрес на твоем компьютере только или где запущен данный скрипт. по нажатии на клавишу q выход и возвращает обратно в режим DHCP
    в строчке кода замени на свое название то что в кавычках - interface = "Ethernet"
    для его использования установить на своем домашнем компьютере Python и установить библиотеку keyboard, чтобы потом для рабочего места сделать с помощью pyinstaller чтобы не ставить там python.

    import ipaddress
    import random
    import time
    import subprocess
    import platform
    import keyboard  # pip install keyboard
    import re
    
    
    class IPAddressManager:
        """Класс для управления и скрытия IP-адресов в локальной сети."""
    
        def __init__(self, interface: str):
            self.interface = interface
            self.original_ip = self._get_current_ip()
            self.hidden_ip = None
    
        def _get_current_ip(self) -> str:
            """Получить текущий IP-адрес интерфейса."""
            try:
                if platform.system() == "Windows":
                    output = subprocess.check_output(
                        "ipconfig", shell=True, stderr=subprocess.DEVNULL, universal_newlines=True)
                    pattern = re.compile(
                        rf"{self.interface}.*?IPv4.*?:\s*(\d+\.\d+\.\d+\.\d+)", re.DOTALL)
                    match = pattern.search(output)
                    if match:
                        return match.group(1)
                    raise ValueError(
                        f"IP-адрес для интерфейса {self.interface} не найден")
                else:  # Linux и macOS
                    output = subprocess.check_output(
                        f"ifconfig {self.interface}", shell=True, universal_newlines=True)
                    match = re.search(r"inet (\d+\.\d+\.\d+\.\d+)", output)
                    if match:
                        return match.group(1)
                    raise ValueError(
                        f"IP-адрес для интерфейса {self.interface} не найден")
            except subprocess.CalledProcessError as e:
                raise RuntimeError(f"Ошибка при выполнении команды: {e}")
    
        def hide_ip(self) -> None:
            """Скрыть IP-адрес, изменив его на случайный в той же подсети."""
            current_ip = ipaddress.ip_address(self.original_ip)
            network = ipaddress.ip_network(f"{current_ip}/24", strict=False)
    
            while True:
                new_ip = ipaddress.ip_address(random.randint(
                    int(network.network_address) + 1, int(network.broadcast_address) - 1))
                if new_ip != current_ip:
                    self.hidden_ip = str(new_ip)
                    break
    
            self._change_ip(self.hidden_ip)
    
        def restore_ip(self) -> None:
            """Восстановить оригинальный IP-адрес."""
            if self.hidden_ip:
                self._change_ip(self.original_ip)
                self.hidden_ip = None
    
        def _change_ip(self, new_ip: str) -> None:
            """Изменить IP-адрес интерфейса."""
            try:
                if platform.system() == "Windows":
                    subprocess.run(f'netsh interface ip set address name="{self.interface}" static {new_ip} 255.255.255.0',
                                   shell=True, check=True, stderr=subprocess.DEVNULL)
                else:  # Linux и macOS
                    subprocess.run(f"sudo ifconfig {self.interface} {new_ip} netmask 255.255.255.0",
                                   shell=True, check=True, stderr=subprocess.DEVNULL)
            except subprocess.CalledProcessError as e:
                raise RuntimeError(
                    f"Не удалось изменить IP-адрес на {new_ip}. Ошибка: {e}")
    
        def restore_dhcp(self) -> None:
            """Восстановить автоматическое получение IP-адреса (DHCP)."""
            try:
                if platform.system() == "Windows":
                    subprocess.run(
                        f'netsh interface ip set address name="{
                            self.interface}" source=dhcp',
                        shell=True, check=True, stderr=subprocess.DEVNULL
                    )
                    print(f"Интерфейс {
                          self.interface} успешно переведен в режим DHCP")
                else:  # Linux и macOS
                    subprocess.run(
                        f"sudo dhclient -r {self.interface} && sudo dhclient {self.interface}",
                        shell=True, check=True, stderr=subprocess.DEVNULL
                    )
                    print(f"Интерфейс {
                          self.interface} успешно переведен в режим DHCP")
            except subprocess.CalledProcessError as e:
                print(f"Ошибка при восстановлении DHCP: {e}")
    
        def run(self) -> None:
            """Запустить процесс скрытия IP-адреса."""
            print(f"Начальный IP-адрес: {self.original_ip}")
            self.hide_ip()
            print(f"IP-адрес скрыт. Новый адрес: {self.hidden_ip}")
            print("Нажмите 'q' для выхода и восстановления автоматического получения IP.")
    
            while True:
                if keyboard.is_pressed('q'):
                    break
                time.sleep(0.1)
    
            self.restore_dhcp()
            print("Программа завершена. DHCP восстановлен.")
    
    
    if __name__ == "__main__":
        try:
            interface = "Ethernet"  # Тут замени на имя твоего сетевого интерфейса - так как я делал это все на своем компе
            manager = IPAddressManager(interface)
            manager.run()
        except Exception as e:
            print(f"Произошла ошибка: {e}")
    Ответ написан
    6 комментариев

Лучшие вопросы пользователя

Все вопросы (3)