надо в тексте найти текст содержащий ip адрес например: жвдапожвапзщываопжд 192.168.14.15 варпывпрапрвапрвапр
PHP: <? $txt=" sdfdsf sd 43 143.23.242.12 sds dsd sd sd sd sds dsd sdsd ds d 3241 454 2113 34 dsfds f 3 45 34 5 23.45.2.1 247.135.2.56 fdgfgf 45 "; preg_match_all('#([0-9]{1,3}\.){3}([0-9]{1,3})#',$txt,$matches); for ($i=0; $i<count($matches[0]); $i++) echo $matches[0][$i]."<br>"; ?>
X-Cray твой вариант не оч хорошо работает. Он соответствует: 192.168.1.92 1. 92 У меня есть свой вариант нахождения IP /^([0-9]{0,3}(\.[0-9]{0,3}){0,4}){0,1}$/ Но он тоже не идеален, соответствует: 192.168.1.92 .92
PHP: <? $txt=" 192.168.1.92 1. 92 "; preg_match_all('#([0-9]{1,3}\.){3}([0-9]{1,3})#',$txt,$matches); for ($i=0; $i<count($matches[0]); $i++) echo $matches[0][$i]."<br>"; ?> Запускай...
Кажется понял.. Как тебе этот вариант: /[0-2][0-5][0-5]\.[0-2][0-5][0-5]\.[0-2][0-5][0-5]\.[0-2][0-5][0-5]/
X-Cray я? Так: PHP: <? $a='255.255.255.255'; if (!preg_match('/[0-2][0-5][0-5]\.[0-2][0-5][0-5]\.[0-2][0-5][0-5]\.[0-2][0-5][0-5]/',$a,$rezultat)) { echo "Ничего не найдено"; exit; } //$rezultat=$rezultat[0]; for ($i=0; $i<count($rezultat); $i++) echo $rezultat[$i].'<br>'; ?>
# - это "кавычки регулярки" Doctor, а для того, чтоб выбирать по-человечески, я привел цикл, а прег_мач у меня ALL
Ничем не отличаются. P.S. не знаю, что у вас там не пашет с моим скриптом, наверное, скопировали криво. PHP: <? $txt=" main page proxy list [1] proxy list [2] proxy list [3] proxy list [4] proxy list [5] faq links contact Top Free Sites ... Proxy 4 Free Anonymity Checker Digital Cyber Soft Stay Invisible Online Proxy Checker Public Web Proxies Xroxy Proxz.com Freeproxylists My-Proxy MRP Proxylist Message Board Privacy Tools... Protect your privacy! Safe Surfing Suite combines Anonymous Surfing, Anti-Spyware and Digital Shredder Lite into one solution! read more Secure Tunnel is a powerful data encryption and tunneling service that protects your online privacy. read more Clear All History is an award-winning privacy and clean-up utility that eliminates all those tracks from your computer! read more Total Net Shield is a complete privacy suite that shields all of your web communications. read more Anti-Spyware finds computer monitoring surveillance software put on your PC without your knowledge or consent. read more ProxyWay is a Free proxy server agent (proxy software) which you use together with your web browser to ensure your anonymity when you surf the Internet. ProxyWay shields your current connection when you visit websites, download files, or use web-based e-mail accounts. ProxyWay provides an extended proxy management system that enables you to search for proxies - proxy finder; check proxy servers for speed, anonymity, type - proxy checker; create proxy chains. Allows update proxy list automatically using scheduler. Lets you change proxies (cascades) per time, per connection or randomly. Also it can be used as a simple local proxy server. Free version of ProxyWay is available to download only from StayInvisible.com IP Port Type Country Last Test 201.65.178.130 80 anonymous Brazil 2006-08-13 Whois 202.159.203.185 80 transparent India 2006-08-13 Whois 210.222.254.227 8080 high anonymity South Korea 2006-08-13 Whois 203.109.34.34 80 transparent Malaysia 2006-08-13 Whois 69.212.128.5 3128 transparent United States 2006-08-13 Whois 125.243.163.67 8080 transparent 2006-08-13 Whois 203.113.130.49 80 high anonymity Vietnam 2006-08-13 Whois 124.53.117.62 8080 high anonymity South Korea 2006-08-13 Whois 196.7.0.160 80 transparent South Africa 2006-08-13 Whois 203.113.130.60 80 high anonymity Vietnam 2006-08-13 Whois 202.159.203.196 80 transparent India 2006-08-13 Whois 200.88.223.98 80 anonymous Dominican Republic 2006-08-13 Whois 218.111.124.49 80 high anonymity Malaysia 2006-08-13 Whois 212.162.158.85 80 transparent Saudi Arabia 2006-08-13 Whois 198.70.193.56 8080 high anonymity United States 2006-08-13 Whois 200.65.127.163 3128 transparent Mexico 2006-08-13 Whois 125.243.163.66 8080 transparent 2006-08-13 Whois 200.208.207.134 3128 transparent Brazil 2006-08-13 Whois 203.149.62.69 3128 transparent Thailand 2006-08-13 Whois 166.90.205.125 8080 anonymous United States 2006-08-13 Whois 80.81.53.7 8080 transparent Latvia 2006-08-13 Whois 210.79.149.214 8080 high anonymity Japan 2006-08-13 Whois 221.143.16.172 8080 high anonymity South Korea 2006-08-13 Whois 202.159.203.12 80 transparent India 2006-08-13 Whois 222.124.3.26 8080 transparent Indonesia 2006-08-13 Whois Sites Where You Can Find More Proxy Lists and Security Tips Site 1 Site 2 Site 3 Site 4 Site 5 Site 6 Site 7 Site 8 Site 9 IP Port Type Country Last Test 87.240.6.90 8080 high anonymity Russian Federation 2006-08-13 Whois 203.198.162.124 8080 anonymous Hong Kong 2006-08-13 Whois 125.63.70.4 3128 transparent 2006-08-13 Whois 66.98.238.8 8080 anonymous United States 2006-08-13 Whois 218.25.163.20 80 high anonymity China 2006-08-13 Whois 203.177.143.49 80 high anonymity Philippines 2006-08-13 Whois 211.195.40.217 8080 high anonymity South Korea 2006-08-13 Whois 200.225.194.49 80 transparent Brazil 2006-08-13 Whois 203.149.62.67 8080 transparent Thailand 2006-08-13 Whois 125.243.207.131 8080 transparent 2006-08-13 Whois 218.111.124.51 80 high anonymity Malaysia 2006-08-13 Whois 61.74.245.206 8080 high anonymity South Korea 2006-08-13 Whois 125.244.11.195 8080 transparent 2006-08-13 Whois 202.159.203.115 80 transparent India 2006-08-13 Whois 85.185.236.229 3128 transparent Iran 2006-08-13 Whois 200.42.209.2 3128 transparent Dominican Republic 2006-08-13 Whois 61.252.217.190 8080 high anonymity South Korea 2006-08-13 Whois 222.110.5.166 8080 high anonymity South Korea 2006-08-13 Whois 202.108.119.227 80 anonymous China 2006-08-13 Whois 213.172.45.250 8080 anonymous Spain 2006-08-13 Whois Safe Surfing Suite™ combines three powerful privacy solutions to protect your identity on the Internet! Anonymous Surfing™ protects you and your family from online identity theft by keeping your IP address (and your identity) private. Anonymizer Anti-Spyware™ now prevents spyware before it is downloaded onto your PC through its real-time, Active-X shield. Anonymizer Digital Shredder Lite™ is the easiest way to keep your PC clean and running smoothly. More information... IP Port Type Country Last Test 213.150.171.34 8080 anonymous Tunisia 2006-08-13 Whois 202.159.203.228 80 transparent India 2006-08-13 Whois 159.148.229.4 8080 anonymous Latvia 2006-08-13 Whois 202.159.203.62 80 transparent India 2006-08-13 Whois 210.213.105.234 3128 transparent Philippines 2006-08-13 Whois 202.159.203.124 80 transparent India 2006-08-13 Whois 202.159.203.106 80 transparent India 2006-08-13 Whois 202.159.203.93 80 transparent India 2006-08-13 Whois 165.228.133.10 3128 transparent Australia 2006-08-13 Whois 85.18.252.145 3128 transparent Italy 2006-08-13 Whois 217.219.128.69 80 transparent Iran 2006-08-13 Whois 210.21.75.114 8080 anonymous China 2006-08-13 Whois 218.11.207.244 80 anonymous China 2006-08-13 Whois 61.220.150.2 3128 transparent Taiwan 2006-08-13 Whois 203.149.62.66 80 transparent Thailand 2006-08-13 Whois 202.159.203.212 80 transparent India 2006-08-13 Whois 211.153.44.155 8080 anonymous China 2006-08-13 Whois 202.159.203.156 80 transparent India 2006-08-13 Whois 195.212.15.100 80 high anonymity Great Britain (UK) 2006-08-13 Whois 200.81.94.59 80 transparent Argentina 2006-08-13 Whois 202.159.203.207 80 transparent India 2006-08-13 Whois 195.212.15.200 80 high anonymity Great Britain (UK) 2006-08-13 Whois 193.170.68.247 8080 transparent Austria 2006-08-13 Whois 61.108.41.2 3128 transparent South Korea 2006-08-13 Whois 200.129.168.1 8080 anonymous Brazil 2006-08-13 Whois 201.147.158.52 8080 anonymous Mexico 2006-08-13 Whois 202.159.203.177 80 transparent India 2006-08-13 Whois 80.80.12.125 80 transparent Denmark 2006-08-13 Whois 61.8.251.92 80 anonymous Singapore 2006-08-13 Whois 202.159.203.150 80 transparent India 2006-08-13 Whois 202.159.203.52 80 transparent India 2006-08-13 Whois 202.159.194.173 80 transparent India 2006-08-13 Whois 193.251.147.244 8080 transparent Chad 2006-08-13 Whois 201.21.144.96 8080 anonymous Brazil 2006-08-13 Whois 61.129.52.144 8888 anonymous China 2006-08-13 Whois 200.45.249.190 3128 transparent Argentina 2006-08-13 Whois 200.215.113.172 80 anonymous Brazil 2006-08-13 Whois 202.159.203.23 80 transparent India 2006-08-13 Whois 165.228.128.10 3128 transparent Australia 2006-08-13 Whois 202.54.110.161 80 high anonymity India 2006-08-13 Whois 211.176.182.69 8080 high anonymity South Korea 2006-08-13 Whois 219.209.48.150 8080 high anonymity Japan 2006-08-13 Whois 202.159.203.45 80 transparent India 2006-08-13 Whois 211.76.97.230 80 transparent Taiwan 2006-08-13 Whois 211.193.79.249 8080 high anonymity South Korea 2006-08-13 Whois 202.194.210.9 3128 anonymous China 2006-08-13 Whois 202.159.203.238 80 transparent India 2006-08-13 Whois 213.136.105.2 80 anonymous Ivory Coast 2006-08-13 Whois 202.159.203.202 80 transparent India 2006-08-13 Whois 200.148.158.129 3128 transparent Brazil 2006-08-13 Whois 84.96.70.155 8080 transparent France 2006-08-13 Whois 61.47.15.133 8080 transparent Thailand 2006-08-13 Whois 222.99.195.121 8080 high anonymity South Korea 2006-08-13 Whois 212.162.158.82 8080 transparent Saudi Arabia 2006-08-13 Whois 212.93.193.72 80 transparent Saudi Arabia 2006-08-13 Whois Top Anonymizer Tools Safe Surfing Suite Anti-Spyware Net Nanny Total Net Shield Anonymous Surfing Free Tools Free Spyware Scanner Anonymous Surfing Trial Solutions for your privacy! Anti-Spyware Detects spyware and tracking programs that antivirus software won’t discover because they are not viruses. Safe Surfing Suite Combines Anonymous Surfing, Anti-Spyware and Digital Shredder Lite into one solution! Clear All History Cleans your history, cookies, and browsers cache, and it also cleans the Windows recycle bin, temp directory, recent document list and much more. Total Net Shield Shield all of your web communications from the online spying and snooping. Anonymizer Protect your privacy and keep your vital information \"unlisted\" with one click. "; preg_match_all('#([0-9]{1,3}\.){3}([0-9]{1,3})#',$txt,$matches); for ($i=0; $i<count($matches[0]); $i++) echo $matches[0][$i]."<br>"; ?> текст с http://publicproxyservers.com/page1.html Ответ скрипта: Код (Text): 201.65.178.130 202.159.203.185 210.222.254.227 203.109.34.34 69.212.128.5 125.243.163.67 203.113.130.49 124.53.117.62 196.7.0.160 203.113.130.60 202.159.203.196 200.88.223.98 218.111.124.49 212.162.158.85 198.70.193.56 200.65.127.163 125.243.163.66 200.208.207.134 203.149.62.69 166.90.205.125 80.81.53.7 210.79.149.214 221.143.16.172 202.159.203.12 222.124.3.26 87.240.6.90 203.198.162.124 125.63.70.4 66.98.238.8 218.25.163.20 203.177.143.49 211.195.40.217 200.225.194.49 203.149.62.67 125.243.207.131 218.111.124.51 61.74.245.206 125.244.11.195 202.159.203.115 85.185.236.229 200.42.209.2 61.252.217.190 222.110.5.166 202.108.119.227 213.172.45.250 213.150.171.34 202.159.203.228 159.148.229.4 202.159.203.62 210.213.105.234 202.159.203.124 202.159.203.106 202.159.203.93 165.228.133.10 85.18.252.145 217.219.128.69 210.21.75.114 218.11.207.244 61.220.150.2 203.149.62.66 202.159.203.212 211.153.44.155 202.159.203.156 195.212.15.100 200.81.94.59 202.159.203.207 195.212.15.200 193.170.68.247 61.108.41.2 200.129.168.1 201.147.158.52 202.159.203.177 80.80.12.125 61.8.251.92 202.159.203.150 202.159.203.52 202.159.194.173 193.251.147.244 201.21.144.96 61.129.52.144 200.45.249.190 200.215.113.172 202.159.203.23 165.228.128.10 202.54.110.161 211.176.182.69 219.209.48.150 202.159.203.45 211.76.97.230 211.193.79.249 202.194.210.9 202.159.203.238 213.136.105.2 202.159.203.202 200.148.158.129 84.96.70.155 61.47.15.133 222.99.195.121 212.162.158.82 212.93.193.72
Для тех, кто хочет проверить IP на 0-255: замените PHP: echo $matches[0][$i]."<br>"; на PHP: echo (max(explode(".",$matches[0][$i]))>255 ? "неправильный IP" : $matches[0][$i])."<br>"; PS с быстродействием регулярки с длинным условием [0-2][0-9] .. и т.д. не сравнивал.
Ржу Во-первых, [0-9] обозначается как \d (digital) А чем вам не нравится первый вариант? Код (Text): /(\d{1,3}\.){3}(\d{1,3})/ Если регулярка захватывает мусор, это еще не значит, что она неправильная. В любом случае ничто не мешает ее использовать в таком виде. А чтобы массив не содержал лишней ерунды пиши так: Код (Text): /(?:\d{1,3}\.){3}(?:\d{1,3})/ Тогда регулярка будет захватывать только целый IP без его частей. Но это - абсолютно не меняет результат, если ты все правильно сделал. Что касается правильности чисел - то эту задачу лучше вынести за область регулярки. Является ли строка 345.567.678.789 адресом IP? И да и нет. С одной стороны таких IP-адресов не бывает. С другой стороны, маловероятно, что такая строка может еще от куда-то взяться. Скорее всего это либо неправильный адрес IP, либо уникальный случай попадание левой строки под шаблон регулярки. Можно сделать так (регулярку сокращаю, ибо очень длинная): Код (Text): /(?:(?:0|1|2|3|...|255)\.){3}(?:0|1|2|3|...|255)/ Эта регулярка будет захватывать только "правильные" IP. Это, по-вашему, и есть "правильная" регулярка, которую вы пытаетесь придумать? А если у нас попадется вот такая строка? "d4fg.3453.sd.0.43.64.120.45b64.df453" Где вы тут видете адрес IP? Я не знаю что это, но явно не то что мы ищем. Однако, даже последняя регулярка ошибется и выхватит "правильный" ай-пи: 0.43.64.120, хотя это вовсе не ай-пи, а лишь часть чего-то другого. Думаю, вероятность попасть в такой маргарин намного выше, чем найти отдельностоящую комбинацию типа "456.567.678.789". Так что вместо того, чтобы переживать за выпадение из допустимого диапозона (ну в крайнем случае поставь вместо '\d{1,3}' выражение, допускающее числа до 300: '[0-2]?\d{1,2}'), лучше позаботиться о правильном контексте. Если автор регулярки знает, от куда он вытаскивает адреса, то ему должно быть известно, что вокруг этого адреса. В крайнем случае, мы можем быть уверены, что вокруг адреса не могут быть буквы, цифры и точки. Иначе это уже не ай-пи адрес, а часть чего-то другого, как в примере выше. Пишем регулярку с уточнением контекста: Код (Text): /(?<!\w\.)(?:[0-2]?\d{1,2}\.){3}(?:[0-2]?\d{1,2})(?!\w\.)/ Так мы обозначили, что перед и после адреса не могут быть буквы, цифры, знаки подчеркивания и точки. Теперь вероятность того, что вместо адреса ай-пи будет что-то другое, снизилась достаточно сильно. Так же мы ограничили диапозон чисел от 0 до 299, что еще сильнее снижает риск захватить что-то не то. У кого паранойя, можете перечислить все числа от 0 до 255: '(?:0|1|2|3|...|255)' - только вместо троеточия продолжите ряд. Но я не вижу смысла делать этого. Потому что даже отдельно стоящая строка вида "192.168.0.1" может оказаться не адресом ай-пи, а чем-то другим. К сожалению, регулярные строки не могут извлеч смысл. И единственный вариант избежать ошибки - определить контекст, как это сделано в последнем варианте.
Raa, да вы писатель... Я для поиска ip собрал себе такой рег: '\b((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\b'si