Расширенный поиск  

Новости:

Автор Тема: как получить ip компьютера (консольно)  (Прочитано 1213 раз)

0 Пользователей и 1 Гость просматривают эту тему.

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T

И так, прежде всего здравствуйте. Передо мной встала задача консольно(подчеркну КОНСОЛЬНО) получить IP адресс компьютера на котором я нахожусь. Варианты зайди в браузер и .... бла бла бла не предлогать.
Прежде всего вопрос к админам конечно же...
И так делимся вариантоми (если это не секрет) как вы это делаете. Я нашол вариант но он меня не очень устраивает! позже раскажу))) Да и всех с ПРОШЕДШТМ ПРАЗДНИЧКОМ!!!
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

AlVas

  • Участник
  • **
  • Спасибо: 2 раз(а)
  • Оффлайн Оффлайн
  • Сообщений: 60
  • ОЗТ: 53864
Re:как получить ip компьютера (консольно)
« Ответ #1 : Февраль 24, 2014, 13:31:43 »

В командной строке ipconfig
Записан
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #2 : Февраль 24, 2014, 14:00:13 »

так и знал что что то упутил))) if config или ifconfig \all  выдает ip внутренний, а мне нужен внешний ip, тот что раздается (динамически) провайдером для подключения интернета!
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #3 : Февраль 24, 2014, 14:06:28 »

Итак как это сделаю я сейчас....
Нам понадобится программа wget.exe(для винды) (альтернатива команды get в линуксе)
Текстовый редактор, ну и не кривые руки.... хотя и с ними все работать будет!
1. ищем и качаем программу ВГЕТ
2. Создаем bat со следующим содержанием:
wget.exe http://www.myip.ru/ru-RU/index.php -O myip.tml
find "<TR><TD bgcolor=white align=center valign=middle>" myip.tml>>ip
del myip.tml
3. на выходе получаем файл IP без разрешения, открыв который в текстовом редакторе увидем
---------- MYIP.TML
  <TR><TD bgcolor=white align=center valign=middle>XXX.XXX.XXX.XXX</TD></TR>
  <TR><TD bgcolor=white align=center valign=middle></TD></TR>

где
XXX.XXX.XXX.XXX
и есть ваш IP внешний!!!
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #4 : Февраль 24, 2014, 14:09:47 »

Дак вот в чем проблема, хотелось бы получить в файл IP только XXX.XXX.XXX.XXX а не строчку с тегами.

Как из сторок
<TR><TD bgcolor=white align=center valign=middle>XXX.XXX.XXX.XXX</TD></TR>
  <TR><TD bgcolor=white align=center valign=middle></TD></TR>

получить только XXX.XXX.XXX.XXX

(кстати вместо http://www.myip.ru/ru-RU/index.php можно подставлять любой другой сайт показывающий ваш IP)

Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #5 : Февраль 24, 2014, 14:13:51 »

немного порывшись в инете пару дней....)) решил попробовать вот так

FOR /F "eol=- tokens=1,3* delims= " %%i in (ip) do echo %%k>>ips

как вы уже догадались создал еще один файл IPS для вывода команды в тестовом режиме
и наш текст сократился с
   <TR><TD bgcolor=white align=center valign=middle>XXX.XXX.XXX.XXX</TD></TR>
  <TR><TD bgcolor=white align=center valign=middle></TD></TR>

до следующего
  valign=middle>XXX.XXX.XXX.XXX</TD></TR>
  valign=middle></TD></TR>

Может кто подскажет как из текста выделить IP???
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

Evg33

  • Administrator
  • Легенда
  • *****
  • Спасибо: 180 раз(а)
  • Оффлайн Оффлайн
  • Сообщений: 4.723
  • ОЗТ: 586731
  • Russia
    • rusnavi.org/
Re:как получить ip компьютера (консольно)
« Ответ #6 : Февраль 24, 2014, 14:15:14 »

banord: wget -qO- 'http://www.myip.ru/get_ip.php?loc=' | sed -ne 's/.*valign=middle>\([0-9.]*\)<\/TD.*/\1/p'
если нету wget, то можно curl.
Записан
Xiaomi Redmi Note 3 Pro / Mitac Mio A-502 (WM6+NN XXL) / Google Nexus 4 / Google Nexus 7 LTE (Ведроид + NN + osmand) / Holux M241
СиБи "Панда": Megajet-555 + ML-145 / President Randy II P. УКВ/КВ "UB9HBD": Baofeng UV-3R Mark II / Baofeng UV-5R.
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #7 : Февраль 24, 2014, 14:24:18 »

пишет синтаксическая ошибка,  у меня Винда, и программа под виндe wget.exe (одним файлом) поэтому скорее всего он не понимает параметры -qO- или команду sed -ne
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #8 : Февраль 24, 2014, 14:28:41 »

wget для винды (http://gnuwin32.sourceforge.net/packages/wget.htm) может кому интересно (не реклама)

sed для винды (sed.sf.net/grabbag/ssed/sed-3.59.zip)
« Последнее редактирование: Февраль 24, 2014, 16:00:24 от banord »
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

Evg33

  • Administrator
  • Легенда
  • *****
  • Спасибо: 180 раз(а)
  • Оффлайн Оффлайн
  • Сообщений: 4.723
  • ОЗТ: 586731
  • Russia
    • rusnavi.org/
Re:как получить ip компьютера (консольно)
« Ответ #9 : Февраль 24, 2014, 14:29:05 »

в ТЗ ничего про виндовс не говорилось. wget и sed проги из линукса, а не как Вы пишите "альтернатива команды get в линуксе"
Данная команда отлично работает под линуксом.
Поставьте ещё sed под win. Всё линуксовое есть в cygwin.


upd: SED рядом с Вашей ссылкой есть http://gnuwin32.sourceforge.net/packages/sed.htm
« Последнее редактирование: Февраль 24, 2014, 14:55:05 от Evg33 »
Записан
Xiaomi Redmi Note 3 Pro / Mitac Mio A-502 (WM6+NN XXL) / Google Nexus 4 / Google Nexus 7 LTE (Ведроид + NN + osmand) / Holux M241
СиБи "Панда": Megajet-555 + ML-145 / President Randy II P. УКВ/КВ "UB9HBD": Baofeng UV-3R Mark II / Baofeng UV-5R.
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #10 : Февраль 24, 2014, 16:04:28 »

и так скачал wget и sed для винды.
пишу
wget.exe -qO- 'http://www.myip.ru/get_ip.php?loc=' | sed.exe -ne 's/.*valign=middle>\([0-9.]*\)<\/TD.*/\1/p'
а он мне выдает  Синтаксическая ошибка. буду дальше курить МАН sed
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

banord

  • Посвященный
  • ***
  • Оффлайн Оффлайн
  • Сообщений: 161
  • ОЗТ: 80547
  • Prology MDN 1430T
Re:как получить ip компьютера (консольно)
« Ответ #11 : Февраль 24, 2014, 23:29:38 »

Для любознательных Команда
wget -qO- 'http://www.myip.ru/get_ip.php?loc=' | sed -ne 's/.*valign=middle>\([0-9.]*\)<\/TD.*/\1/p'
реально работает АДМИН не лжот))) и выдает все что надо и как надо, но только под линуксом.
под виндой не срабатывает, поэтому буду разбираться с частью кода sed -ne 's/.*valign=middle>\([0-9.]*\)<\/TD.*/\1/p'

=======мануал из нета==============
sed [-n] [-V] [--quiet] [--silent] [--version] [--help]
    [-e script] [--expression=script]
    [-f script-file] [--file=script-file]
    [script-if-no-other-script]
    [file...]
   
-n
-e сценарий
--expression=сценарий
    Добавляет команды в сценарий к набору выполняемых команд при обработке ввода.
-f сценарий
--file=сценарий
    Добавляет команды содержащиеся в сценарии к набору выполняемых команд при обработке ввода.
Если в командной строке не указан параметр -e, -f, --expressiln или --file, то первый же заданный в командной строке аргумент не-опция будет считаться сценарием для выполнения.

(2)s/регулярное_выражение/замена/флаги
    Подставляет строку замены вместо вхождений регулярного_выражения в области поиска. Вместо / можно использовать любой символ. Более полное описание см. на странице справочного руководства ed(1). Флаги представляют собой ноль или более следующих конструкций:

        n   n=1-512. Делать подстановку только для n-ного вхождения регулярного_выражения.
        g   Глобальная подстановка. Подставить вместо всех не перекрывающихся вхождений регулярного_выражения, а не только вместо первого.
        p   Выдать область поиска в выходной поток, если была сделана замена.
        w wfile   Запись. Добавить область поиска к файлу wfile, если была сделана замена.
       
1
    Огласить текущую строку в "визуально однозначной" форме.
   
p
    Распечатать текущую область шаблона.
P
    Распечатать до первого вхождения новой строки текущей области шаблона.
s/регулярное_выражение/замена/
    Попытаться разыскать регулярное_выражение (regexp) в области шаблона. Если это удалось, то заместить эту часть с заменой. Замена может содержать специальный символ & для обращения к той части области шаблона, которая является соответствием, и специальные управляющие последовательности, от \1 до \9, для обращения к соответствующим разыскиваемым под-выражениям в регулярном_выражении.
w файл
    Записать текущую область шаблона в файл.

завтра быду пробовать по частям какая часть кода не работает под виндой, и как это исправить.
Записан
Prology MDN 1430T winCE_6 (Navitel 5.0.3), (igo8)
Samsung GT-S7562 android 4.0.4 (Navitel 5.0.3.280)(CityGuide 7.7) (7ways 1.01.500) (Garmin StritPilot 1.49)
 

vb

  • Суперзвезда
  • ******
  • Спасибо: 3 раз(а)
  • Оффлайн Оффлайн
  • Сообщений: 799
  • ОЗТ: 13890
Re:как получить ip компьютера (консольно)
« Ответ #12 : Февраль 25, 2014, 16:49:12 »

а зачем?
а то, может мне надо, а я и не знаю
Записан
Asus696, Lowrance Endura Safari
 

Evg33

  • Administrator
  • Легенда
  • *****
  • Спасибо: 180 раз(а)
  • Оффлайн Оффлайн
  • Сообщений: 4.723
  • ОЗТ: 586731
  • Russia
    • rusnavi.org/
Re:как получить ip компьютера (консольно)
« Ответ #13 : Февраль 25, 2014, 16:51:27 »

vb: значит незачем оно тебе .
Записан
Xiaomi Redmi Note 3 Pro / Mitac Mio A-502 (WM6+NN XXL) / Google Nexus 4 / Google Nexus 7 LTE (Ведроид + NN + osmand) / Holux M241
СиБи "Панда": Megajet-555 + ML-145 / President Randy II P. УКВ/КВ "UB9HBD": Baofeng UV-3R Mark II / Baofeng UV-5R.
 
 

Страница сгенерирована за 0.032 секунд. Запросов: 22.