Сопоставление диапазона IP-адресов с именем домена в файле hosts

Если в вашей системе уже не установлены xwd и xwud , я был бы очень удивлен, если бы вам не удалось легко установить их через диспетчер пакетов максимум за несколько секунд.

% man xwd

 NAME 
xwd - выгрузить образ X-окна 
 
СИНХРОНИЗАЦИЯ 
xwd [-debug] [-help] [ -nobdrs] [-out файл] [-xy] [-frame] [-добавить значение] 
 [-root | -id id | -name name] [-icmap] [-screen] [-silent] [-display 
display] 
 
ОПИСАНИЕ 
Xwd - это дамп окна системы X Window полезность. Xwd позволяет пользователям X 
сохранять изображения окон в специально отформатированном файле дампа. Этот файл 
затем может быть прочитан различными другими утилитами X для повторного отображения, печати, 
редактирования, форматирования, архивирования, обработки изображений и т. Д. Целевой выигрыш - 
dow выбирается щелкнув указатель в желаемом окне. Клавиатура 
звонит один раз в начале дампа и два раза, когда 
дамп завершен. 
 

Поймите, это своего рода программа для записи сеанса рабочего стола - встроен в X-сервер - он позволяет делать снимки экрана и многое другое. Но вы захотите немного прочитать документацию, прежде чем погрузиться в нее - я думаю, просто для того, чтобы ознакомиться с ней.

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

Просто пролистайте еще немного и ...

  -root Этот параметр указывает, что корневое окно должно быть выбрано 
для дампа окна, не требуя от пользователя выбора окна 
с помощью указателя. 
 {{1 }} -id id Этот параметр указывает, что окно с указанным идентификатором ресурса 
должно быть выбрано для дампа окна без 
требования, чтобы пользователь выбирал окно с помощью указателя. {{1} } 

Если вы последуете моему совету, вы также очень внимательно посмотрите на xdotool , хотя, по общему признанию, здесь он имеет ограниченное значение. Он в основном выполняет скрипты для мыши, хотя предлагает некоторый прямой интерфейс командной строки для X backend api - как ссылки @Gilles. И пользоваться им довольно просто.

С учетом всего сказанного, основная проблема заключается в том, что ваш дисплей в настоящее время занят. Если ваше окно должно оставаться невидимым, с этим можно справиться несколькими способами:хотя, я думаю, вам придется немного их попробовать, прежде чем вы их опустите. Я бы рекомендовал просто настроить ваш экран так, чтобы он был в два раза больше вашего экрана. Таким образом, вы можете просто перетащить окно за пределы экрана, и оно продолжит обновлять отображение, но за пределами экрана. Я могу сделать это с помощью инструментов nvidia, и большинство из них могут сделать это с помощью xrandr, , но, особенно в Linux, кажется, по крайней мере, по моему опыту, проблемы с отображением часто являются личными проблемами только потому, что существует так много возможных способов настроить их.

Другой способ сделать это - использовать виртуальный X-сервер, например xnest или xephyr. Эти серверы помещают весь X-сервер в окно, которое может быть фоновым или полностью отсутствовать, если вы предпочитаете. Последний раз я проверял, что было, к сожалению, некоторое время назад, они использовали xdummy-driver - и поэтому не были бы хорошим выбором для видеоигры, требующей ускорения видео. Тем не менее, я уверен, что ваши справочные страницы могут рассказать вам больше, и я могу только надеяться, что помог.

1
21.12.2018, 06:35
3 ответа

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

0
27.01.2020, 23:31

Скорее всего, вам не нужно помещать назначенный DHCP -IP-адрес в файл hosts. Например, вы, вероятно, захотите указать браузеру http://your-domain-here/, и ваш локальный веб-сервер ответит на это. (То же самое с любой другой настройкой клиент/сервер ). В этом случае просто сопоставьте домен с IP-адресом локального хоста, который представляет собой любой IP-адрес, начинающийся с 127.(. Я бы избегал 127.0.0.1, так как это может дать странные ответы для обратного поиска ). Просто выберите новый, которого еще нет в вашем файле hosts.

Другой вариант — просто выбрать статический пространственный IP-адрес RFC1918 (192.168.x.x, 10.x.x.x, 172.16–31.x.x )и добавить его к локальному интерфейсу, а затем просто использовать этот IP-адрес.

Если вам действительно нужно сопоставить его с вашим текущим IP-адресом, обычно есть место, где вы можете поместить сценарий оболочки для запуска, когда ваша машина получает IP-адрес через DHCP. Если вы используете dhclient, вы можете поместить скрипт в /etc/dhcp/dhclient-enter-hooks.d/. Существует dhclient -скрипт (8 )справочная страница , в которой это документировано, но что-то вроде этого (очень непроверено ), вероятно, сработает (он использует "губку" из пакета moreutils):

#!/bin/sh

MY_DOMAIN=your-domain.com

if [ "$reason" != "BOUND" ] && [ "$reason" != "REBIND" ]; then
    exit 0
fi

grep -v " $MY_DOMAIN\$" /etc/hosts | sponge /etc/hosts   # really should escape the dots in the domain, but probably doesn't matter.
printf '%s %s\n' "$new_ip_address" "$MY_DOMAIN" >> /etc/hosts

Это очень не проверено. Убедитесь, что у вас есть резервная копия /etc/hosts, прежде чем пытаться это сделать!

1
27.01.2020, 23:31

Ты пишешь,

I work with Wi-Fi. Due to that my system's IP changes every time I connect to the network.

Эти два утверждения не должны быть связаны. Ваш IP-адрес может быть назначен вручную на фиксированное значение («статический» адрес )или он может быть назначен динамически DHCP-сервером в сети («динамический» адрес ). Неважно, подключается ли ваша система через Wi-Fi или через кабель; это ваши два варианта получения IP-адреса.

Чтобы добавить интереса, DHCP-сервер может быть настроен на предоставление вам одного и того же IP-адреса каждый раз, когда вы подключаетесь к его сети (, неофициально иногда называемой «липким» адресом ). Вот так у меня настроена домашняя сеть.

Вы не можете (обычно )использовать статический IP-адрес, если вы находитесь в роуминге по разным сетям, поэтому лучше всего использовать фиксированный адрес.

С другой стороны, если все, что вам нужно сделать, это получить запись хоста в вашем домене, чтобы она указывала на вашу клиентскую систему, вам может потребоваться поиск поставщиков динамических DNS. Одним из примеров является dyn.com, но есть много других, которые следует учитывать. Вы устанавливаете небольшую часть программного обеспечения на своем клиенте, которое фиксирует любое изменение IP-адреса и уведомляет центральный сервер. Он обновляет вашу запись домена для вас. Последняя часть головоломки заключается в том, что вы заменяете запись Aв своем реальном домене записью CNAME, которая указывает на запись домена DDNS, указывающую на вашу клиентскую систему.

1
27.01.2020, 23:31

Теги

Похожие вопросы