Соединитесь с dnsmasq сервером внешне

Вашим вопросом является "Различный глава файлов". Если Вы действительно подразумеваете, что один файл является главой другого, то простое cmp скажет Вам что:

cmp big_file small_file
cmp: EOF on small_file

Это говорит Вам, что различие между этими двумя файлами не было обнаружено, пока конец файла не был достигнут при чтении small_file.

Если однако Вы подразумеваете, что весь текст маленького файла может произойти где угодно внутри big_file, затем принятие Вас может приспособить оба файла в памяти, можно использовать

perl -le '
   use autodie;
   undef $/;
   open SMALL, "<", "small_file";
   open BIG, "<", "big_file";
   $small = <SMALL>;
   $big = <BIG>;
   $pos = index $big, $small;
   print $pos if $pos >= 0;
'

Это распечатает смещение в big_file где содержание small_file расположены (например, 0, если small_file соответствия в начале big_file). Если small_file не соответствует внутри big_file, затем ничто не будет распечатано. Если будет ошибка, то статус выхода будет ненулевым.

3
04.01.2016, 02:11
1 ответ

Вы можете сказать SOCAT , чтобы связать PTY с программой AWK ; Это сил awk , чтобы запустить в линию буферизованный режим, и вы получаете немедленные ответы, которые вы ищете.

Вот командная строка для прослушивания порта 9000:

socat TCP4-LISTEN:9000 SYSTEM:'/tmp/awk.sh',pty,echo=0

и вот содержимое сценария /tmp/awk.sh :

#!/usr/bin/awk -f
#
BEGIN   { print "This is the awk socket" }
        { print NR, $0 }
END     { print "All done" }

Образец Run:

$ nc -vvv otherhost 9000
otherhost [192.168.1.15] 9000 (?) open
This is the awk socket
hello world
1       hello world
how are you
2       how are you
boo
3       boo
^C sent 28, rcvd 61
-121--139696-

По умолчанию dnsmasq часто настроен для прослушивания только к подключениям с локальной машины. Однако может быть достигнуто из любого места, если они настроили должным образом; Например, обычно используется на Linux на основе сетевых приборов, таких как домашние маршрутизаторы, где он отвечает на запросы от внутренней сети.

Отредактируйте файл dnsmasq.conf и убедитесь, что интерфейсы и Address , включают все места, которые вы хотите достичь его из. Если вы хотите, чтобы он был доступен из Интернета, то эти два варианта не должны быть установлены. Также убедитесь, что Bind-интерфейсы тоже не устанавливаются.

Обратите внимание, что для того, чтобы ваш компьютер отвечал на запросы DNS, он должен иметь IP-адрес, который виден из Интернета, то есть не в диапазоне частного диапазона IP-адресов .

3
27.01.2020, 21:23

Теги

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