Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Парсер IP из текста

Ответить
Настройки темы
[решено] Парсер IP из текста

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: morgan1991
Дата: 24-01-2010
Здравствуйте!
Помогите пожалуйста никак не могу разобраться с шаблонами.
Куда ставить скобки, что нужно экранировать и т.д. вообще даже такое простое выражение, нужно выковырять с текста IP такого вида: 127.0.0.1:8080, IP и порт меняется.
Никак не могу сделать. Объясните пожалуйста...

-------
Хочу научиться писать драйвера на с++


Отправлено: 16:10, 24-01-2010

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


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

По поводу выковыривания IP:

Код: Выделить весь код
$sString = @IPAddress2 & ":8080"
$GetValidIp = _StringIsValidIP($sString, -1, 1)
ConsoleWrite($GetValidIp)

Func _StringIsValidIP($sIP_String, $iRet_Flag=-1, $iRet_Port=0)
    If $iRet_Flag <> -1 Then Return StringRegExp($sIP_String, '\A([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\z')

    Local $sPattern = '([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*'
    If $iRet_Port Then $sPattern = '([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(?::\d{4})?).*'

    Return StringRegExpReplace($sIP_String, $sPattern, '\1')
EndFunc

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

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:58, 24-01-2010 | #2



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

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


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Ничего не понял...
Есть текст html
В нём есть эти IP, прокси.
Нужно считать их в массив.
Код: Выделить весь код
$Mass = StringRegExp($Text, $Pattern, 3)
Чем заполнить переменную $Pattern???

-------
Хочу научиться писать драйвера на с++


Отправлено: 18:48, 24-01-2010 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата morgan1991:
Чем заполнить переменную $Pattern? »
Код: Выделить весь код
$sPattern = '([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(?::\d{4})?).*'

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

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 19:07, 24-01-2010 | #4


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Или я дурак или лыжи по асфальту не едут....
Код: Выделить весь код
    Local $TempHtml = _ProxyDownload("proxies.my-proxy.com", "80", "http://proxies.my-proxy.com/")
    Local $TempFormula = StringRegExp($TempHtml, '([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(?::\d{*})?).*', 3)
    For $i = 0 To UBound($TempFormula)-1 Step +1
        FileWrite("ttttttt.txt", $TempFormula[$i] & @CRLF)
    Next
Возвращает:
Код: Выделить весь код
5.0.2.263
211.162.208.50
82.79.131.126

-------
Хочу научиться писать драйвера на с++


Отправлено: 20:03, 24-01-2010 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


morgan1991,

Вот здесь Две функции CreatoRа

Я их чуть-чуть переделал под себя(CreatoR, извини, пожалуйста):

Код: Выделить весь код
#include <Inet.au3>

$url1 = "http://www.proxylist.net/list/pl/0/1"
$sFile = "proxy.txt"
$sTest = _INetGetSource($url1)
If $sTest <> "" Then
    $IPsArray = _StringToIPArray($sTest)
    For $i = 1 To $IPsArray[0] Step 2
        FileWrite($sFile, $IPsArray[$i] & @CRLF)
    Next
EndIf

Func _StringToIPArray($sString)
    Local $avArray = StringRegExp($sString, '(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5})', 3)
    Local $avRetArr[UBound($avArray) + 1], $iUbound

    For $i = 0 To UBound($avArray) - 1
        If _StringIsValidIP($avArray[$i]) Then
            $avRetArr[0] += 1
            $avRetArr[$avRetArr[0]] = $avArray[$i]
        EndIf
    Next

    If $avRetArr[0] = 0 Then Return SetError(1, 0, 0)

    ReDim $avRetArr[$avRetArr[0] + 1]
    Return $avRetArr
EndFunc   ;==>_StringToIPArray

Func _StringIsValidIP($sIP_String, $iRet_Flag = -1)
    If $iRet_Flag <> -1 Then Return StringRegExp($sIP_String, '\A(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5})\z')

    Return StringRegExpReplace($sIP_String, '(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}).*', '\1')
EndFunc   ;==>_StringIsValidIP
В приведенном примере у меня железно выбирает все IP-адреса с указанного адреса.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:56, 24-01-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Парсер IP из текста

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Парсер по документу WORD Frost_Imp AutoIt 5 03-08-2011 17:47
CMD/BAT - [решено] вывод текста на экран antoniospb Скриптовые языки администрирования Windows 6 23-04-2010 13:40
[решено] Выделение числа из текста u-Art AutoIt 15 18-01-2010 03:07
[решено] Ввод текста в ноутбуке ? tyt Хочу все знать 6 25-10-2009 15:10
CMD/BAT - [решено] Изменение текста в файле tarasov.evgeny Скриптовые языки администрирования Windows 5 12-08-2009 16:21




 
Переход