Войти

Показать полную графическую версию : [решено] Определение IP и запись в файл


Страниц : 1 2 [3]

Sta1917
15-11-2017, 00:06
Здравствуйте, пытаюсь запустить на Win 10 скрипт из поста #15 (http://forum.oszone.net/post-1869013-15.html). выдает
Сценарий: D:\Cheсk_IP.vbs
Строка: 24
Символ: 1
Ошибка: Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Код: 800A0E7A
Источник: ADODB.Connection
В чем может быть проблема?
В строке 24 вроде все нормально:
https://3.downloader.disk.yandex.ru/disk/27d66882f97789145e70f751d330f7bf63b9eb5c233538a182e5f3cca47191a9/5a0b9a5d/_JnEhY9dg9UUI2Crv-FUcHCHqTX5goym1_IJFz9qcyWzWl6JHwXFgYH213qw5A1oTC4fna3lfiYwb-WCE1E2Zg%3D%3D?uid=0&filename=2017-11-15%2000-25-11%20D%20%20Avito_Tech%20Che%D1%81k_IP.vbs%20-%20Notepad%2B%2B.png&disposition=inline&hash=&limit=0&content_type=image%2Fpng&fsize=19462&hid=aeebe0060e66bb69e0efc778b3b0cfdc&media_type=image&tknv=v2&etag=cdc8c21f8771384278282d39e3212b8e

Iska
15-11-2017, 00:54
В чем может быть проблема? »
В том же, о чём написано зараз после поста #15 — в отсутствии библиотеки. Если Ваша ОС — x64, можете попробовать исполнить скрипт под x86-хостом:
C:\Windows\SysWOW64\wscript.exe "Путь\Скрипт.vbs"
или:
C:\Windows\SysWOW64\cscript.exe //nologo "Путь\Скрипт.vbs"

Sta1917
15-11-2017, 01:57
При запуске через wscript выдает:
Сценарий: D:\Check_IP.vbs
Строка: 82
Символ: 3
Ошибка: Сбой скачивания указанного ресурса.

Код: 800C0008
Источник: msxml3.dll

При запуске через cscript открывает диалоговое окно cscript, без возможности вставки чего-либо.
Установка MDAC не помогла.

Iska
15-11-2017, 03:14
При запуске через wscript выдает:
Код: Выделить весь код
Сценарий: D:\Avito_Tech\Check_IP.vbs
Строка: 82
Символ: 3
Ошибка: Сбой скачивания указанного ресурса. »
А «ручками», в браузере, у Вас доступен адрес http://ifconfig.me/ip?

При запуске через cscript открывает диалоговое окно cscript, без возможности вставки чего-либо. »
А что Вы там планировали вставлять?!

Установка MDAC не помогла. »
Помогла или не помогла — не знаю, но ведь уже работает, ошибка в другом месте и по другой причине.

Sta1917
15-11-2017, 10:37
А «ручками», в браузере, у Вас доступен адрес http://ifconfig.me/ip? »
Работает, также работает скрипт из поста #8.
При запуске через cscript открывает диалоговое окно cscript, без возможности вставки чего-либо. »
А что Вы там планировали вставлять?! »
Вы предложили:
C:\Windows\SysWOW64\cscript.exe //nologo "Путь\Скрипт.vbs" »
Вообще после проверки ip нужно запустить приложение (*.exe), если IP нет в списке, если есть сказать какой и когда был добавлен.
p.s.: Компиляция в *.exe ничего недала.

Iska
15-11-2017, 11:43
также работает скрипт из поста #8. »
Да ну. Единственное отличие #15 от #8 по существу места ошибки — в использовании метода .setRequestHeader.

p.s.: Компиляция в *.exe ничего недала. »
И не должна была.

Sta1917
15-11-2017, 22:32
При запуске скрипта из поста #8 двойным кликом периодически вываливается
Сценарий: D:\Check_IP(8).vbs
Строка: 12
Символ: 2
Ошибка: Не удается найти указанный ресурс.

Код: 800C0005
Источник: msxml3.dll

При запуске start C:\Windows\SysWOW64\wscript.exe "D:\Check_IP(8).vbs" все впорядке.

Сделал regsvr32 msxml.dll
Теперь при запуске скрипта из поста #15 появляется:
Сценарий: D:\Check_IP(15).vbs
Строка: 81
Символ: 2
Ошибка: Не удается найти указанный ресурс.

Код: 800C0005
Источник: msxml3.dll
UPD: Теперь вываливается:
Сценарий: D:\Check_IP(15).vbs
Строка: 34
Символ: 2
Ошибка: Отсутствует значение для одного или нескольких требуемых параметров.
Код: 80040E10
Источник: Microsoft JET Database Engine

cinstaller
07-02-2019, 07:47
Здравствуйте, Iska! Будьте любезны, внесите изменение в данный скрипт из поста №8 (http://forum.oszone.net/post-1867971-8.html), что бы в конце IP отображалась дата и время записи, буду вам очень благодарен.
Пример:
118.151.161.70 (07.02.2019 / 07:31)
122.221.141.20 (07.02.2019 / 07:39)
И т.д...

Option Explicit
Const ForAppending = 8
Const strPreviousIPList = "PreviousIPList.txt"
Dim strIP
Dim boolIPExists
With WScript.CreateObject("Microsoft.XMLHTTP")
.open "GET", "http://ifconfig.me/ip", False
.send
strIP = Replace(.responseText, vbLf, "")
End With
boolIPExists = False
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strPreviousIPList) Then
With .OpenTextFile(strPreviousIPList)
Do Until .AtEndOfStream
If .ReadLine() = strIP Then
boolIPExists = True
Exit Do
End If
Loop
.Close
End With
End If
If boolIPExists Then
MsgBox "IP exists", vbOKOnly + vbExclamation, "IP exists"
Else
With .OpenTextFile(strPreviousIPList, ForAppending, True)
.WriteLine strIP
.Close
End With
MsgBox "IP [" & strIP & "] append", vbOKOnly + vbInformation, "IP append"
End If
End With
WScript.Quit 0 »

Iska
07-02-2019, 19:18
что бы в конце IP отображалась дата и время записи »
«В конце IP» — это где? В файле? Или в сообщении?

cinstaller
07-02-2019, 21:38
«В конце IP» — это где? В файле? Или в сообщении? »

Что бы при внесение IP в тхт файл записывалась дата и время в конце адреса в таком формате.
Пример:
118.151.161.70 (07.02.2019 / 07:31)
122.221.141.20 (07.02.2019 / 07:39)

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

http://b.radikal.ru/b31/1902/00/d48166c2a076.png

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

Iska
11-02-2019, 03:14
cinstaller, пробуйте:
Option Explicit

Const ForAppending = 8
Const strPreviousIPList = "PreviousIPList.txt"

Dim strIP
Dim boolIPExists


With WScript.CreateObject("Microsoft.XMLHTTP")
.open "GET", "http://ifconfig.me/ip", False
.send

strIP = Replace(.responseText, vbLf, "")
End With

boolIPExists = False

With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strPreviousIPList) Then
With .OpenTextFile(strPreviousIPList)
Do Until .AtEndOfStream
If Split(.ReadLine())(0) = strIP Then
boolIPExists = True

Exit Do
End If
Loop

.Close
End With
End If

If boolIPExists Then
MsgBox "IP exists", vbOKOnly + vbExclamation, "IP exists"
Else
With .OpenTextFile(strPreviousIPList, ForAppending, True)
.WriteLine strIP & " " & DateTimeNowFormat()

.Close
End With

MsgBox "IP [" & strIP & "] append", vbOKOnly + vbInformation, "IP append"
End If
End With

WScript.Quit 0

Function DateTimeNowFormat()
Dim dtNow

dtNow = Now()

DateTimeNowFormat = _
"(" & _
DigitPad(Day(dtNow), 2) & "." & DigitPad(Month(dtNow), 2) & "." & DigitPad(Year(dtNow), 4) & _
" / " & _
DigitPad(Hour(dtNow), 2) & ":" & DigitPad(Minute(dtNow), 2) & _
")"
End Function

Function DigitPad(intValue, intZeroCount)
DigitPad = Right(String(intZeroCount, "0") & CStr(intValue), intZeroCount)
End Function

cinstaller
13-02-2019, 22:17
Iska » Большое вам спасибо!

cinstaller
19-02-2019, 19:28
Здравствуйте, Iska. У вас золотые руки! Мне очень сильно помог ваш скрипт, еще раз большое спасибо! Скажите пожалуйста, как можно реализовать, что бы скрипт узнавал IP адреса через браузер Google Chrome ? Дело в том, что в данном браузере установлено расширение VPN и я хочу перебрать все IP адреса и уникальные занести в ТХТ документ.

Option Explicit

Const ForAppending = 8
Const strPreviousIPList = "PreviousIPList.txt"

Dim strIP
Dim boolIPExists


With WScript.CreateObject("Microsoft.XMLHTTP")
.open "GET", "http://ifconfig.me/ip", False
.send

strIP = Replace(.responseText, vbLf, "")
End With

boolIPExists = False

With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strPreviousIPList) Then
With .OpenTextFile(strPreviousIPList)
Do Until .AtEndOfStream
If Split(.ReadLine())(0) = strIP Then
boolIPExists = True

Exit Do
End If
Loop

.Close
End With
End If

If boolIPExists Then
MsgBox "IP exists", vbOKOnly + vbExclamation, "IP exists"
Else
With .OpenTextFile(strPreviousIPList, ForAppending, True)
.WriteLine strIP & " " & DateTimeNowFormat()

.Close
End With

MsgBox "IP [" & strIP & "] append", vbOKOnly + vbInformation, "IP append"
End If
End With

WScript.Quit 0

Function DateTimeNowFormat()
Dim dtNow

dtNow = Now()

DateTimeNowFormat = _
"(" & _
DigitPad(Day(dtNow), 2) & "." & DigitPad(Month(dtNow), 2) & "." & DigitPad(Year(dtNow), 4) & _
" / " & _
DigitPad(Hour(dtNow), 2) & ":" & DigitPad(Minute(dtNow), 2) & _
")"
End Function

Function DigitPad(intValue, intZeroCount)
DigitPad = Right(String(intZeroCount, "0") & CStr(intValue), intZeroCount)
End Function

Я не разбираюсь в программирование, но примерно понимаю, что ваш скрипт на данный момент узнает IP адреса таким способом:

With WScript.CreateObject("Microsoft.XMLHTTP")
.open "GET", "http://ifconfig.me/ip", False
.send

strIP = Replace(.responseText, vbLf, "")
End With

Но вот вопрос, можно или нельзя реализовать проверку именно через браузер Google Chrome с включенным расширением VPN ?

Iska
19-02-2019, 20:25
Ответ простой — никак. Google Chrome не предоставляет класса Automation.




© OSzone.net 2001-2012