1

Тема: OFF: Проверка IP

Давайте тут выложим сайты для удобной проверки IP.
Я пользуюсь этими двумя:
http://ip.ahk4.me
http://7fw.de/ipraw.php

2

Re: OFF: Проверка IP

А AHK тут причём? Переношу в Script-Coding.com community.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: OFF: Проверка IP

2Malcev, что значит "сайт для удобной проверки IP"? Есть "неудобные" сайты? Неудобные сайты обычно проходят по ст.280\282 УК РФ. А если серьезно, то конечная реализация некоторого сайта не всегда совпадает с оригинальной задумкой и как следствие то, что одним разумеется как "удобство", другим будет названо "убожеством", - все относительно.

4

Re: OFF: Проверка IP

Не проще ли получать нужный IP скриптом?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

5 (изменено: greg zakharov, 2015-03-05 22:42:38)

Re: OFF: Проверка IP

teadrinker пишет:

Не проще ли получать нужный IP скриптом?

Не в курсе кому была обращена эта реплика, так что отвечу за себя. Проще, причем намного, учитывая постоянно развернутую на весь экран консоль.

6

Re: OFF: Проверка IP

Я имею в виду как узнать свой IP с минимальным использованием кода (без RegEx).

7 (изменено: YMP, 2015-03-05 22:55:41)

Re: OFF: Проверка IP

В веб-интерфейс роутера зайти. Вообще никакого кода, только мышкой поорудовать.

Т.е. нет, возможно, ещё с клавиатуры пароль и логин ввести. Но кода таки никакого.

8

Re: OFF: Проверка IP

Malcev пишет:

Я имею в виду как узнать свой IP с минимальным использованием кода (без RegEx).

Узнать — это в каком смысле? Просто посмотреть, или получить в переменную?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

9 (изменено: Malcev, 2015-03-05 23:12:40)

Re: OFF: Проверка IP

Получить в переменную, при условии, что стоит рутер и использую прокси-сервер.
На AHK:

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "http://ip.ahk4.me")
HTTP.Send()
MsgBox, % HTTP.ResponseText

10

Re: OFF: Проверка IP

YMP пишет:

В веб-интерфейс роутера зайти. Вообще никакого кода, только мышкой поорудовать.
Т.е. нет, возможно, ещё с клавиатуры пароль и логин ввести. Но кода таки никакого.

Дело не в коде, а в идологическом "удобстве", но в Вашем случае есть еще кое-что: лазить с любого вафля-устройства через вэб-интерфейс роутера, - проще все же код.

teadrinker пишет:

Узнать — это в каком смысле? Просто посмотреть, или получить в переменную?

Именно! Копипаст в данном случае идет лесом.

Malcev пишет:

Получить в переменную, при условии, что стоит рутер и использую прокси-сервер...

"Роза пахнет розой", так что если прочие аргументы для Вас не имеют значения, то как насчет следующего: сегодня ip.ahk4.me есть, а завра его нет. Что тогда? И потом, как было сказано ранее, у каждого свое представление об удобстве.

11

Re: OFF: Проверка IP

то как насчет следующего: сегодня ip.ahk4.me есть, а завра его нет. Что тогда?

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

12

Re: OFF: Проверка IP

Malcev пишет:

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

Сизифов труд. Что ж, удачи!

13

Re: OFF: Проверка IP

А что мешает свой сервер поднять? Тогда не придется полагаться на кого-то. Если надо, могу поднять на сервере скрипт.

14

Re: OFF: Проверка IP

Обсуждалось. Небольшая тема амбициозным названием, но с короткими и емкими примерами - CMD/WSH/HTA/JS/VBS: Универсальный способ определения внешнего IP и др.

( 2 * b ) || ! ( 2 * b )

15 (изменено: Flasher, 2015-03-28 16:44:36)

Re: OFF: Проверка IP

В любом случае все эти сервисы не покажут серый IP.
Для верного определения обхожусь таким скриптом:

For Each IP in GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")._
ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'")
  If Not IsNull(IP.IPAddress) Then MyIP = MyIP & Join(IP.IPAddress, vbLf) & vbLf
Next : MsgBox MyIP, 64, "  Мои текущие IP"

16

Re: OFF: Проверка IP

Flasher, что означает "серый"? Тот, что выводит ipconfig?

Flasher пишет:

Для верного определения обхожусь таким скриптом...

Например, менее красиво, но без WMI.

(function() {
  var std, res, i = 0, ip;
  
  with (new ActiveXObject('WScript.Shell')) {
    std = Exec("cmd /q /k echo off");
    std.StdIn.WriteLine("reg query \
      HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces \
      /s | findstr /irc:\"DhcpIPAddress\" & exit"
    );
    res = std.StdOut.ReadAll().split('\n');
    
    for (; i < res.length; i++) {
      ip = res[i].match(/(\d+\.){3}\d+/g);
      WScript.echo(ip !== null ? ip : "");
    }
  }
}());

В PowerShell - короче:

(gp HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\* | ? {
   $_.DhcpIPAddress -ne $null -and $_.DhcpIPAddress.ToString() -ne '0.0.0.0'
}).DhcpIPAddress

17 (изменено: Flasher, 2015-03-28 16:44:21)

Re: OFF: Проверка IP

greg zakharov пишет:

Тот, что выводит ipconfig?

ipconfig и белый выводит. Серый - собственный/внутренний/локальный, не(уникальный/выделенный/публичный), шлюзовой, начинающийся с 10/127/169/172/192.

greg zakharov пишет:

Например, менее красиво, но без WMI.

Там выше про отсутствие регекспов писали.


Вот ещё вариант без WMI:

Hive  = "HKLM\SYSTEM\CurrentControlSet\services\"
Hive1 = Hive & "RemoteAccess\Interfaces\"
Hive2 = Hive & "Tcpip\Parameters\Interfaces\"
For i = 2 To 10
  N = Hive1 & i & "\"
  With CreateObject("WScript.Shell")
    On Error Resume Next
    .RegRead(N) : If Err.Number < 0 Then Exit For
    IP = .RegRead(Hive2 & .RegRead(N & "InterfaceName") & "\IPAddress")
    If Err.Number = 0 Then MyIP = MyIP & Join(IP, vbLf) & vbLf
  End With : On Error Goto 0
Next : MsgBox MyIP, 64, "  Мои текущие IP"

18

Re: OFF: Проверка IP

У Яндекс вроде бы API позволяет обходится без регулярок:

with (new ActiveXObject('WinHTTP.WinHTTPRequest.5.1')) {
  open('GET', 'http://ipv4.internet.yandex.ru/api/v0/ip');
  send();
  WScript.echo(responseText);
}

19 (изменено: kolotilov256, 2020-03-30 02:52:23)

Re: OFF: Проверка IP

Я вот пользуюсь этим сайтом https://ipv4.icanhazip.com/

Он единственный, кто определяет истинный IPv4, все остальные отображают IPv6.

Но вот проблема. Если изменить IPv4, далее перезагрузить сайт - то информация в нём не изменится. Но если открыть этот сайт например в другом браузере или в режиме инкогнито, то там появляется новый IP. Причём если потом вернутся на старую вкладку браузера, то IP там останется тот же самый.

Тоже самое происходит, если воспользоваться ahk.

f2::
MsgBox % http("GET", "https://ipv4.icanhazip.com")
return

UrlGET(URL) {
   
   ComObjError(false)
   HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1") 
   HTTP.Open("GET", URL, false)
   HTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded") 
   HTTP.SetRequestHeader("Connection", "Keep-Alive")
   HTTP.Send()
   return HTTP.ResponseText
}

Запускаю код, жму F2, выходит мой текущий IPv4. Далее меняю этот IP через специальную прогу, жду секунд 10, жму опять F2, выдаёт тот же IP. Но если перезагрузить ahk и нажать F2, то выдаст уже новый IP.
Как эту проблему решать?

Нашёл решение на c#.
https://imgur.com/AanS37S.jpg

Но совершенно не понимаю как реализовать такое же на ahk.
Подскажите пожалуйста. Я убил часа два гугля эту дичь и абсолютно никто ничего про это не упоминает...

20 (изменено: kolotilov256, 2020-03-30 11:36:17)

Re: OFF: Проверка IP

HTTP.SetRequestHeader("Connection", "close") помогло!

хвала небесам и Ринату Намазову!

21 (изменено: Rumata, 2020-03-30 12:59:27)

Re: OFF: Проверка IP

Malcev пишет:

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

Есть такое. Один минус - написано под линукс и cygwin/mingw. Под чистый cmd.exe не адаптировал (не ставил такой задачи):
https://github.com/ildar-shaimordanov/b … aster/myip

Список был составлен из уже известных мне и соществующих в интернете.

( 2 * b ) || ! ( 2 * b )

22

Re: OFF: Проверка IP

kolotilov256, эти строки не нужны:

   HTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded") 
   HTTP.SetRequestHeader("Connection", "Keep-Alive")

23

Re: OFF: Проверка IP

А разве просто так не работает:

f2::
MsgBox % UrlGET("https://ipv4.icanhazip.com")
return

UrlGET(URL) {
   HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1") 
   HTTP.Open("GET", URL, false)
   HTTP.Send()
   return HTTP.ResponseText
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

24 (изменено: kolotilov256, 2020-03-30 19:16:12)

Re: OFF: Проверка IP

teadrinker, работает, но при смене IP - сайт отображает старый IP адрес.

P.S: Если открывать этот же сайт с другого браузера или в режиме инкогнито текущего браузера - то новый IP уже отображает.
У ahk там тоже свой виртуальный сервер, который не меняется, пока не перезагрузишь скрипт или не выполнишь эту команду HTTP.SetRequestHeader("Connection", "close")

25 (изменено: Malcev, 2020-03-30 19:49:32)

Re: OFF: Проверка IP

Не знаю какими вы программами пользуетесь для изменения айпи, но у меня при смене айпи, код из 23 поста всегда показывает актуальный айпи.

26

Re: OFF: Проверка IP

Malcev, ну вот есть такой специальный лаунчер, который меняет IP адрес локально только для gta samp.

27 (изменено: Malcev, 2020-03-31 05:00:22)

Re: OFF: Проверка IP

Rumata пишет:

Список был составлен из уже известных мне и соществующих в интернете.

Протестировал в броузере.
Не загружаются:

#IPURL="ifcfg.me"
#IPURL="ip.appspot.com"

Выводят неверный айпи:

#IPURL="ifconfig.me/ip" (через http распознает правильно)
#IPURL="ipecho.net/plain"
#IPURL="ipinfo.io/ip" (через http распознает правильно)
#IPURL="myexternalip.com/raw"

28

Re: OFF: Проверка IP

Malcev, значит какие-то устарели, перестали работать.

( 2 * b ) || ! ( 2 * b )