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

Так твой GUI тоже локально же работает. Но да, если хочется с разных машин запускать traceroute с одинаковыми ключами, алиас нужен на каждой машине, на которой хочется так делать. Ну как вариант можно ещё вместо копирования просто IP копировать IP сразу с нужной командой. Но тут кому какой вариант нравится, мне стандартные аргументы для команды, которые хранятся локально, но исполняются удалённо, не нужны например.

Можно вообще хоть через Compose сделать себе на compose, T, например, ввод traceroute -n -q1, если оно нужно часто и на разных удалённых хостах.

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

я не знаю что тебя побуждает именно так трактовать мои сообщения, ты случаем не админ локалхоста?

про привязку к окружению, я имел в виду следующие:

$ alias traceroute="traceroute -n -q"

будет работать там, где ты заранее его добавишь, «мой» GUI будет работать везде без дополнительных телодвижений

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

я не знаю что тебя побуждает именно так трактовать мои сообщения, ты случаем не админ локалхоста?

Именно КАК?

Я твоё сообщение истрактовал верно. Но тебе почему-то показалось, что нет.

про привязку к окружению, я имел в виду следующие:

Я понял.

будет работать там, где ты заранее его добавишь

Нет, как я и написал выше.

«мой» GUI будет работать везде без дополнительных телодвижений

Да. Твой вариант — хранить набор аргументов локально, но исполнять везде.

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

И я предложил вариант, как того же самого можно добиться без мышеклика — например, при помощи Compose. Можно просто повесить на какое-то сочетание клавиш ввод traceroute -n -q1, или любой другой команды, которая часто нужна (или нескольких, на несколько сочетаний, и т.д. и т.п.). И это будет работать точно так же везде.

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

Не понимаю твоего упорства, может тебе это просто нравится.

Давай продолжим:

Твоя задача сделать traceroue с router1

user@localhost:~$ ssh server1
user@server1:~$ telnet router1 
#

как сделать тут traceroute? там стоит cisco например

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

Как твой опыт «расшарить» на коллег?

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

Не понимаю твоего упорства, может тебе это просто нравится.

Упорства в чём? Что нравится?

Нравится решать задачи и упрощать себе жизнь? Да.

Отвечать на непонятки? Нет, не нравится. Но оставлять недопонимание тоже не хочется.

Твоя задача сделать traceroue с router1

как сделать тут traceroute? там стоит cisco например

Я уже предложил вариант через Compose.

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

Как твой опыт «расшарить» на коллег?

Я не утверждал, что мой вариант удобно и легко расшаривается на коллег, или что мне это вообще нужно. Но расшарить его несложно — можно поделиться конфигом терминала и строчками Compose-file. Правда представить ситуацию, в которой не только мне, но ещё и всем коллегам понадобится именно -n -q1, а не что-то ещё, мне сложно.

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

…Compose…

Хотя я в принципе не очень понимаю, что подразумевается под «делать». Разверни мысль. Или не разворачивай… Я начинаю сомневаться в конструктивности данного обсуждения.

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

очень простой сценарий:

тебе от коллеги прилетает ip адрес, как узнать его geoip локацию при помощи compose

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

Q: браузер и мессенджеры, там что делать?

A: …Compose…

Q: тебе от коллеги прилетает ip адрес, как узнать его geoip локацию при помощи compose

A: Никак.

?

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

Чем дальше, тем больше я теряю нить. Давай с начала, что конкретно ты от меня хочешь сейчас?

Или просто забей.

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

Я пытаюсь сказать что в видео показана работа с консолью, и не очевидно что этот же механизм работает в любом другом приложении.

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

Да в принципе понятно, что он работает с выделением мышкой. Непонятно только, где будет вызывается всё тот же traceroute -n -q1, если не в терминале. Вот выделил ты URL в браузере, захотел сделать traceroute. Как это будет выглядеть? Разве не в терминале в итоге придётся выполнять команду, в любом случае?

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

Как это будет выглядеть?

в этом случае я вижу так:

при нажатии на traceroute есть два выбора, отослать в последний открытый терминал или выбрать из списка терминалов. (можно добавить еще один пункт - запустить новый терминал)

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

в этом случае я вижу так

А сейчас как?


У меня, собственно, ничего этого нет. Я просто выделю IP, переключусь на терминал и вставлю.

Если что, я не говорил, что мой вариант лучше, удобнее для всех, или что-то ещё такое. Мне просто благодаря этому треду пришла идея в голову, я её реализовал, и поделился. Лично мне для моих юзкейсов такой вариант намного удобнее. Это вовсе не принижает достоинств твоей утилиты, или что-то такое, я даже в мыслях ничего подобного не имел.

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

переключусь на терминал и вставлю.

смена контекста, что не очень для «продуктивности», а именно на нее нацелены мои практики

твоей утилиты

это не моя утилита, я просто склеил вместе kando, clipnotify, xdotool при помощи kcl-lang

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

смена контекста, что не очень для «продуктивности», а именно на нее нацелены мои практики

Перемещение правой руки с клавиатуры на мышку, а потом обратно — тоже.

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

P.S. да и в случае с «отослать в последний открытый терминал или выбрать из списка терминалов» точно так же происходит смена контекста.

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

отослать в последний открытый терминал или выбрать из списка терминалов

Нет, при отсылке команды в терминал, он «вылезает» на рабочее пространство (без альтаба)

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

Нет принципиальной разницы, после нажатия какой именно клавиши «вылезет» терминал. И в том и в другом случае мы были в браузере, а теперь в терминале.

И в этом нет ничего такого уж плохого. Ни в одном ни в другом случае.

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

Ты так и не понял сути этого видео, смысл такой, что любой текст на экране можно представить как объект с информацией и действиями.

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

Привет,

глянул я на сам проект kando и появилось у меня пару вопросов:

1:работает навигация с клавиатуры? я не нашёл, может ты знаешь?у меня не получилось.

2:если я правильно понимаю, чтобы динамически изменять submenu надо переписывать весь файл «menus.json», есть ли возможность сделать что то ввиде «include submenu_1.json»?, или надо всегда переписывать весь файл?

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

1:работает навигация с клавиатуры? я не нашёл, может ты знаешь?у меня не получилось.

Я не нашел, вот есть примеры использования меню

https://kando.menu/usage/

  1. если я правильно понимаю, чтобы динамически изменять submenu надо переписывать весь файл «menus.json», есть ли возможность сделать что то ввиде «include submenu_1.json»?, или надо всегда переписывать весь файл?

Насколько я знаю, include делать нельзя, нужно генерировать json заранее

https://kando.menu/config-files/

Навскидку, можно предположить такую последовательность действий

kando постоянно «следит» за файлом menus.json, и если он меняется - kando его «перечитывает»

Элементом меню, сделать кнопку type: commmand, которая будет вызывать shell скрипт который

  1. перегенерит menus.json
  2. запустит kando заново

визуально это будет не так «эффектно» (окно с меню пропадет на время и появится новое), но решает задачу

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

Во-первых, большое спасибо за беспокойство о моем комфорте, и раз пошло на то, то мне было бы комфортно держать тебя в курсе моих изысканий. Надеюсь это будет комфортно для тебя?

Вот держи новое видео, с управлением tmux сессий на ssh хосте https://youtu.be/nl0FH3K7ATM

Логика проста:

  1. Если нам встречается ойпи адрес, и он есть в ~/.ssh/config
  2. То заходим на удаленный хост и выводим список tmux сессий
  3. Дополняем метаинформацию об ойпи адресе списком сессий и отображаем меню
  4. При клике на сессию - открывается новый терминал, в нем запускается ssh подключение к удаленной машине и запускается выбранная tmux сессия.
gagarin0
() автор топика
Последнее исправление: gagarin0 (всего исправлений: 3)
Ответ на: комментарий от gagarin0

Вот держи новое видео, с управлением tmux сессий на ssh хосте

Мне не нужно. Но может кому-то ещё будет интересно.

мне было бы комфортно держать тебя в курсе моих изысканий. Надеюсь это будет комфортно для тебя?

Но зачем? Мне в принципе не в напряг, но смысла не вижу. Лучше просто писать для всех. Я уверен, на форуме есть люди, которым эти изыскания гораздо интереснее, чем мне.

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

Мне в принципе не в напряг

Отлично, тогда продолжим,

Вот в этом видео уже нет консоли: https://youtu.be/71Q8fDy5umA

Последовательность действий:

1. Открывается сайт twitch.tv
2. На сайте выбирается случайный стример и копируется ссылка в буфер обмена
3. Вылезает контекстное меню что можно сделать
4. Из возможных вариантов выбирается вариант показать клипы стримера
5. Это приводит к открытию новой вкладки со списком клипов
6. Выбирается клип и копируется на него ссылка в буфер обмена
7. Показывается контекстное меню, с метаинформацией о клипе и возможностью его скачать
8. После нажатия на «Download», открывается консоль где клип скачивается на диск.

В итоге мы получили возможность скачать клип в один клик.

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

Еще одно видео:

https://youtu.be/pQN71YRjyFw

Теперь, определяется содержимое буфера по типу.

Если в буфере оказывается json или yaml, то вплывает контекстное меню с возможными действиями

  1. конвертация из формата в формат
  2. открытие данных в специальных утилитах (jid,gron,fx,jless)
gagarin0
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.