Sed замена ip-адреса
Я пытаюсь использовать sed, чтобы заменить один адрес IP другим. любая помощь будет признательна.
Строку в файл test.1 является:
Я хотел бы заменить только 10.201.25.173. на 127.0.0.1.
Желаемая конечная строка должна быть:
Мое регулярное выражение sed-это:
Мне нужна эта команда в одном выровненном регулярном выражении. Возможно ли это сделать?
2 ответа
Я пытаюсь настроить контейнер docker, адрес и порт которого IP для БД могут измениться. При запуске контейнера я хочу использовать sed для замены предыдущего адреса IP на новый. Строка, подлежащая замене, выглядит следующим образом (IP и порт могут быть любыми допустимыми IP4 IP): ‘dbhost’ =>.
Используйте группу захвата и обратную ссылку, чтобы скопировать начало строки в замену и заменить IP на 127.0.0.1
\(. \) создает группу захвата. В замене \1 заменяется частью входных данных, которая соответствовала первой группе захвата, \2 получает вторую группу захвата и так далее.
Более простое решение-использовать awk и просто заменить последнее поле.
Это заменит IP на 127.0.0.1. во всех строках с текстом IN IP4
Похожие вопросы:
У меня есть программа, которая использует gethostbyname (in Windows) для преобразования адреса IP в имя хоста. Но это работает только для IPv4. Какова правильная замена IPv6? Спасибо.
Я уже некоторое время пытаюсь заставить это работать и не совсем понимаю. В принципе, у меня есть файл с ip-адресом, который меняется более или менее ежедневно. Файл содержит только один ip-адрес, и.
Я пытаюсь настроить контейнер docker, адрес и порт которого IP для БД могут измениться. При запуске контейнера я хочу использовать sed для замены предыдущего адреса IP на новый. Строка, подлежащая.
У меня есть файл, который содержит кучу ip-адресов. Я хотел бы, чтобы моя команда sed удалила первые два октета из них. например, 172.0.0.1 следует изменить на XXX.ZZZ.0.1 То, что у меня есть.
Я использую команду sed для замены IP-адреса хоста из файла, где IP генерируется случайным образом. Я не получаю шаблон поиска для двойной кавычки( ). ниже шаблона должны заменить: Host1 = 1.1.1.1.
Sed замена ip адреса
Помогите написать скрипт на bash (с помощью sed и т.п.) замены в текстовом файле строк по шаблону (ip адреса) на теже ip адреса + изменения вокруг них:
кусок исх. файла:
228.34.67.45
14.2.87.210
Необходимо получить:
http://228.34.67.45 228.34.67.45]
14.2.87.210
А можно расшифровать? s|\ как это работает? далее тоже встречается |
А что тут расшифровывать? 🙂 В Perl/sed есть инструкция s/А/B/, которая заменяет A на B, в качестве разделителя используется косой слэш. Но также можно задать свой разделитель, я лично всегда использую прямую черту: s|||
В качестве того что заменять используется регулярное выражение: \(25\+\.5\+\.5\+\.2\+\) которой означает что нужно найти IP-адрес, который начинается с двойки и «запомнить» его (это делают круглые скобки).
В качестве того на что заменять используется [\1 \1] в которое вместо \1 подставляется то, чтобы было найдено и запомнено раньше.
>[оверквотинг удален]
>
>
>В качестве того что заменять используется регулярное выражение: \(28\+\.8\+\.7\+\.3\+\) которой означает что
>нужно найти IP-адрес, который начинается с двойки и «запомнить» его (это
>делают круглые скобки).
>
>В качестве того на что заменять используется [\1 \1] в которое вместо
>\1 подставляется то, чтобы было найдено и запомнено раньше.
>
>Доступно излагаю? 🙂
Sed замена ip-адреса
Я пытаюсь использовать sed, чтобы заменить один адрес IP другим. любая помощь будет признательна.
Строку в файл test.1 является:
Я хотел бы заменить только 10.201.25.173. на 127.0.0.1.
Желаемая конечная строка должна быть:
Мое регулярное выражение sed-это:
Мне нужна эта команда в одном выровненном регулярном выражении. Возможно ли это сделать?
2 ответа
Я пытаюсь настроить контейнер docker, адрес и порт которого IP для БД могут измениться. При запуске контейнера я хочу использовать sed для замены предыдущего адреса IP на новый. Строка, подлежащая замене, выглядит следующим образом (IP и порт могут быть любыми допустимыми IP4 IP): ‘dbhost’ =>.
Используйте группу захвата и обратную ссылку, чтобы скопировать начало строки в замену и заменить IP на 127.0.0.1
\(. \) создает группу захвата. В замене \1 заменяется частью входных данных, которая соответствовала первой группе захвата, \2 получает вторую группу захвата и так далее.
Более простое решение-использовать awk и просто заменить последнее поле.
Это заменит IP на 127.0.0.1. во всех строках с текстом IN IP4
Похожие вопросы:
У меня есть программа, которая использует gethostbyname (in Windows) для преобразования адреса IP в имя хоста. Но это работает только для IPv4. Какова правильная замена IPv6? Спасибо.
Я уже некоторое время пытаюсь заставить это работать и не совсем понимаю. В принципе, у меня есть файл с ip-адресом, который меняется более или менее ежедневно. Файл содержит только один ip-адрес, и.
Я пытаюсь настроить контейнер docker, адрес и порт которого IP для БД могут измениться. При запуске контейнера я хочу использовать sed для замены предыдущего адреса IP на новый. Строка, подлежащая.
У меня есть файл, который содержит кучу ip-адресов. Я хотел бы, чтобы моя команда sed удалила первые два октета из них. например, 172.0.0.1 следует изменить на XXX.ZZZ.0.1 То, что у меня есть.
Я использую команду sed для замены IP-адреса хоста из файла, где IP генерируется случайным образом. Я не получаю шаблон поиска для двойной кавычки( ). ниже шаблона должны заменить: Host1 = 1.1.1.1.
Use sed to replace IP address with hostname in log output
An example line is:
I believe the command would be in the form of:
UPDATE: I omitted to mention that the IP address will always be in the form 10.1.n.n
3 Answers 3
Unfortunately sed cannot run external commands while also passing in parameters taken from its input.
This is a Bash script solution that should do for you:
Broken down for explanation: (only for clarity purposes, it may not work when copied&pasted)
This kinda, sorta works (but uses ‘awk’ instead of ‘sed’):
. needs a bit of polish eg if the host lookup fails; maybe the regex ‘query’ needs to be a bit more specific.
Here’s an explanation of the awk command:
/query/ execute <. >on lines matching the regex ‘query’ (just print others)
IP=$NF set new variable ‘IP’ to the value of the last field on the line (IP address)
$NF=»» zap the last field on the line
L=$0 set new variable ‘L’ to the remaining line (ie without the IP address)
«host » IP | getline name run ‘host’ on the IP address and put the result in a new variable ‘name’
print L,$NF Print ‘L’ (the input line without the IP address) and the last field from the ‘host’ command (the hostname).
Running dig for each IP address would be very inefficient and add load to your DNS server. I would use perl here:
If you need it to query the DNS server only like dig does, you can use Net::DNS instead of gethostbyaddr() :
🖧 Как изменить IP-адрес в файле захвата пакета (поддельный IP-адрес)
Я уверен, что вы столкивались с ситуациями, когда вам нужно было подделать IP-адрес в файле захвата.
Это может потребоваться, когда вы пытаетесь отправить файл захвата кому-то, с кем вы на самом деле не делитесь своими реальными IP-адресами, или вы просто хотите изменить его по своему усмотрению.
Если вы попробовали это и просмотрели веб-сайты, вы наверняка поняли, что есть не так много доступных руководств, и большинство людей просто скажут что-то вроде «просто используйте sed» или используйте «WireEdit» и заплатите за ее лицензию.
Однако, в конкретной ситуации, когда sed не опция (файл был буквально размером в несколько ГБ, и большинство текстовых редакторов просто зависали), и, чтобы еще хуже, нужно фильтровать много информации и только находить IP-адреса источника и назначения для конфиденциальности.
Да, это означает удаление всех этих шумов, таких как DNS, UDP, Broadcast, Cisco ARP, Broadcast, MDNS (да, и это тоже), SSDP… да, почти всего, кроме трафика TCP / UDP, HTTP и TLS между моим сервером и пунктом назначения.
Итак, в итоге мне пришлось отфильтровать все эти шумы и изменить IP-адрес в файле захвата пакета, чтобы скрыть IP-адрес источника, ведь это похоже на фальшивый IP-адрес при захвате пакетов.
Вы также можете использовать другие инструменты, чтобы сделать это на лету, но они требуют больше настроек, а все, что я просто хотел сделать, это скрыть мой исходный IP.
Чтобы упростить это руководство, я просто воспользуюсь браузером и зайду на https://www.itsecforuru.
Будет сгенерирован некоторый трафик TCP, HTTP и TLS вместе с некоторыми другими шумами, которые я отфильтрую в Wireshark, а затем изменю IP-адрес моей рабочей станции (192.168.2.99) на IP-адрес Google DNS (8.8.8.8).
(p.s. это супер быстрый дамп процесса, так что извините за опечатки)
Шаг 1: Фильтрация pcap для источника и приемника
Это стандартный фильтр Wireshark.
Просто отфильтруйте то, что вы хотите видеть в вашем pcap.
В моем случае это был IP-адрес для https://itsecforu.ru и сервера.
Как видите, я отметил IP-фильтр и источника и адреса назначения.
Я хочу изменить свой исходный IP 192.168.2.99 на что-либо.
Я могу изменить свой IP-адрес назначения, но давайте просто упростим все.
Шаг 2: hexdump файла захвата
В этом нет необходимости, но я хотел показать это, чтобы вы знали, с чем мы здесь имеем дело.
hexdump – это стандартный инструмент Linux, который показывает содержимое файлов в шестнадцатеричном формате.
Шаг 3: Поиск значения IP в файле захвата
Шаг 4: Подтверждение вашего IP значения Hex в файле pcap
Теперь, когда я не могу реально перевести IP в Hex на лету (не так ли?), я решил перепроверить его на общедоступных веб-сайтах, на которых есть такие инструменты, например https://ncalculators.com/digital-computation/ip-address-hex-decimal-binary.htm
Шаг 5: Подтверждение вашего IP-адреса в шестнадцатеричном формате в файле pcap
Я использую HxD, который является быстрым бесплатным шестнадцатеричным редактором, который может открывать файлы любого размера (до 8EB), предоставляет необработанный доступ для чтения / записи на диски и основную память (RAM), и при этом он так же прост в использовании, как и любой текстовый редактор.
Это решает множество проблем, которые имеют текстовые редакторы, которые не могут открывать большие файлы, шестнадцатеричные значения отображаются в слишком большом разбросанном формате (HxD показывает в удобном формате).
HxD – это тщательно разработанный и быстрый шестнадцатеричный редактор, который, в дополнение к необработанному редактированию диска и модификации основной памяти (RAM), обрабатывает файлы любого размера.
Простой в использовании интерфейс предлагает такие функции, как поиск и замена, экспорт, контрольные суммы / дайджесты, вставка байтовых шаблонов, уничтожитель файлов, объединение или разбиение файлов, статистика и многое другое.
Редактирование работает как в текстовом редакторе с упором на простую и ориентированную на задачи операцию, поскольку такие функции были упрощены, чтобы скрыть чисто технические различия.
Например, диски и память представлены аналогично файлу и показаны в целом, в отличие от представления, ограниченного сектором / регионом, которое обрезает данные, которые в свою очередь потенциально принадлежат друг другу.
Диски и память можно редактировать так же, как обычный файл, включая поддержку отмены.
Кроме того, разделы памяти определяют область, а недоступные разделы по умолчанию скрыты.
Кроме того, было приложено много усилий, чтобы сделать операции быстрыми и эффективными, вместо того, чтобы заставлять вас использовать специализированные функции по техническим причинам или произвольно ограничивать размеры файлов.
Он включает в себя отзывчивый интерфейс и индикаторы выполнения для длительных операций.
Мне нравится этот инструмент, а вы можете использовать все, что захотите.







