LINUX.ORG.RU

Работа с ip-адресами

 , , kando, kcl-lang


2

1

В последнее время приходится много «работать» с ip адресами, решил упростить себе жизнь.

Если в буфер обмена попадает IP адрес(а), то для него собирается метаинформация (геолокация, кому принадлежит) и отображается через меню.

При нажатии кнопки ping или traceroute, соответствующая команда вставляется в терминал

WM: Fvwm3

UI menu: kando

Посмотреть на исходники можно тут:

https://github.com/metacoma/mindwm-clipboard/

Из зависимостей требуется:

kcl-lang, kando, clipnotify, mmdblookup, ipcalc, xclip, xdotool, базы:

$ ls  geoip/
GeoLite2-ASN.mmdb  GeoLite2-City.mmdb

Видео: https://www.youtube.com/watch?v=UT5dbpUT8AA

Если будет желание попробовать - оформлю README как это можно запустить локально.



Проверено: hobbit ()
Последнее исправление: gagarin0 (всего исправлений: 11)
Ответ на: комментарий от gagarin0

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

Но дело хозяйское, конечно.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Предполагаю, что если ты хочешь людей заинтересовать

Для этого есть пример работы

Заранее обещать попробовать вряд ли кто-то будет

Тогда и выкладывать смысла нет, получается время сэкономил на пустом месте.

gagarin0
() автор топика

Если найдутся желающие попробовать, выложу исходники на гитхаб.

Лучше сразу просто выложить. Желающие не знают, что они желающие, например не узнав, на каком оно языке написано, какие либы используются и т. д. Была бы ссылка, я бы сходил глянул код, и уже потом решил, хочу я пробовать компилять и запускать, или нет.

upd: а, язык в тегах… Ну ок, тем не менее :)


Наглухо испорченное видео в формате gif в 2026 — это ужасно. Сделай нормальный скриншот (или 4 скриншота), а видео приложи в webm ссылкой.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)

Я бы сделал команду, которая бы собирала IP-адреса из stdin и выводила предложения текстом в stdout. Это работало бы по-другому, но затраты на ввод были бы теми же. Меньше усилий на интеграцию с GUI, работа с текстом вместо графического дизайна. Но чтобы это эффективно работало вместо терминала нужен Acme.

kaldeon
()
Ответ на: комментарий от gagarin0

не поддерживать закачку mp4 в галерею

Это галерея скриншотов, а не видео.

не

Тогда придётся перенести в толксы. На главной такому не место.

CrX ★★★★★
()
Ответ на: комментарий от kaldeon

обрати внимание на начало видео, я делаю ssh на удаленную машину, на ее месте мог быть роутер, где «классические понятия» stdin и stdout отсутствует.

работало вместо терминала нужен Acme.

в этом вся проблема

gagarin0
() автор топика
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от gagarin0

Для этого есть пример работы

Ты про картинку?

Тогда и выкладывать смысла нет, получается время сэкономил на пустом месте.

От такой экономии иногда бывает очень больно. Вот у меня по осени потерялась флешка, и оказались, что актуальные исходники одного исследовательского проектика были только на ней. А залил бы на гитхаб – скачал бы и порадовался. Да, проектик был заброшенный тремя годами раньше, и вероятность, что я к нему вернусь, была сильно меньше 50%, иначе бы я такого не допустил. Но всё равно слегка обидно.

Впрочем, как я уже написал, сильно не настаиваю. Просто я бы сделал именно так.

hobbit ★★★★★
()
Ответ на: комментарий от gagarin0

Получается все-таки зря потратил время

Не зря, я планирую завтра подтвердить. А про исходники всё-таки подумай.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Не зря

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

gagarin0
() автор топика
Ответ на: комментарий от dataman

gifgen produces much better results by doing a 2-pass encode. The first pass generates a custom colour palette based on all of the pixels from each frame.

Я так и делал вначале, но ffmpeg ругался и причину ругани с наскоку выяснить не удалось,и я просто сконвертировал .mp4 -> .gif

При помощи этого скрипта с генерировал новый .gif файл и перезалил в пост, спасибо

gagarin0
() автор топика
Последнее исправление: gagarin0 (всего исправлений: 1)

В последнее время приходится много «работать» с ip адресами

РКН штоле?

По теме - прикольно конечно

Turbid ★★★★★
()
Ответ на: комментарий от PPP328

Смысл-то не в имени команды, а в IP-адресе.

Вообще эта штука дала мне идею, которую я не совсем знаю пока, как реализовать в foot. Там хоткей для перехода по url, имеющимся на экране терминала, по hint’ам, без мышки. В urxvt, например, такое же есть, во многих, думаю, эмуляторах терминала. Вот такое же бы второе, только не открытие в браузере, а вставка на месте курсора, и с отдельным регэкспом — для IP, а не url’ей, было бы весьма удобно.

Пока решением видится костыль — сделать более сложный регэксп, который и url и IP глотает, а открывать скриптом, который уже определяет — если url, то открыть в браузере, а если IP, то в primary-буфер отправить.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)

Круто! Нравятся такие меню. Жаль что они не стали мейнстримом в дизайне графических интерфейсов. И FVWM тоже очень нравился. Со временем правда поубавилось времени и интереса, поэтому перестал возиться с этим конструктором и пересел на Openbox.

treflip
()
Ответ на: комментарий от treflip

Я раньше делал такое меню через FvwmButtons, и там было побольше пространства для маневра, например можно было добавлять картинки (например при выделении IP адреса, можно из мониторинга показывать картинку его доступности)

Но FvwmButtons выглядели визуально не очень (что не так критично), но и была «завязка» на fvwm, которого у многих нет.

Kando меню само по себе красивое, но например нельзя добавлять картинки или дополнительную текстовую информацию, только через ссылки на внешние ресурсы.

gagarin0
() автор топика
Ответ на: комментарий от gagarin0

Не увидел здесь ничего похожего на то, что имел в виду я. Я имел в виду хинты, как для url — чтоб вообще без мышки это можно было сделать, полностью с клавы.

CrX ★★★★★
()
Ответ на: комментарий от CrX

смотри внимательнее, дело не в мышке, а дело в том что перехватывается команда ввода, и ее вывод, на основе этого выполняются действия

gagarin0
() автор топика
Ответ на: комментарий от CrX

Это именно то что ты хотел, можно анализировать вывод команды, и на ctrl+k (например) открывать ссылку

gagarin0
() автор топика
Ответ на: комментарий от gagarin0

Нет, не именно.

Я уже добился, чего хотел, от foot, оказывается там есть такая функциональность :)

Всего-то надо добавить в конфиг:

[regex:ip]
regex=(((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4})
launch=wl-copy -p ${match}

[key-bindings]
# [...]
regex-launch=[ip] Control+k
regex-copy=[ip] Control+Shift+k

анализировать вывод команды

Мне хочется, чтоб любое видимое в терминале можно было использовать, не обязательно вывод последней команды. И в том числе и в TUI (в weechat пригодится) работает.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

Нет, не именно.

Не вижу противоречий между тем что я написал, впрочем ладно, это пустая трата времени.

gagarin0
() автор топика
Ответ на: комментарий от gagarin0

Не вижу противоречий между тем что я написал

Ну может я недостаточно понятно описал, чего мне нужно было. В любом случае, уже неважно :)

впрочем ладно, это пустая трата времени

Ага.


Благодарю, что натолкнул на идею :)

CrX ★★★★★
()
Ответ на: комментарий от CrX

Кстати, я правильно понимаю, что ограничение этого подхода с foot, это то что вся эта магия работает в пределах локалхоста?

gagarin0
() автор топика
Ответ на: комментарий от gagarin0

Работает оно на локалхосте, естественно. Но ничто не мешает использовать и при подключении по ssh. Если IP виден в данный момент в терминале, то его можно выбрать хинтом. При использовании ssh весь вывод всех команд видно в терминале? Видно. Значит будет работать.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Да, логично, можно ли при помощи foot создавать вот такой вот json документ?

{
  "ps1": "user@hostname:~",
  "input": "uptime",
  "output": "15:57:43 up  5:56,  1 user,  load average: 0.60, 0.68, 0.76",
}

Если да, то будет ли эта магия работать вне локалхоста?

gagarin0
() автор топика
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от PPP328

Получается и в твоем случае «мышедроч» произошла? Тогда ответ на твой вопрос, «что быстрее», я отвечу уверенно что вариант на скрине.

gagarin0
() автор топика
Ответ на: комментарий от gagarin0

От «мышедрочи» спасает в мой способ выше ;)

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от gagarin0

Как-то вот так это выглядит: https://files.catbox.moe/943ofp.mp4

Жёлтенькие хинты появляются при нажатии хоткея (например ^K). При нажатии соответствующей клавиши IP копируется.

А то может непонятно было, что я хотел вообще изначально. Вот именно этого :)

CrX ★★★★★
()
Ответ на: комментарий от gagarin0

Это-то тут причём? Если речь просто о том, что часто хочется -n -q1, но не хочется эти ключи вводить, то это элементарно решается алиасом.

CrX ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.