#1 13. April 2009 Hallöchen, ich suche ne möglichkeit aus einem string ala : Code: 121.22.29.182:80 2.1090 Transp. CN Y 94% 2009-04-13 14:16:17 211.53.208.28:3128 2.1430 Transp. Y 100% 2009-04-13 14:16:17 190.144.117.170:3128 2.1440 Elite CR ? 47% 2009-04-13 14:07:17 82.44.239.26:9090 2.1470 Anon. GB N 25% 2009-04-13 14:07:17 212.93.193.82:443 2.1600 Transp. SA Y 100% 2009-04-13 14:16:17 222.124.206.45:8080 2.1850 Transp. ID Y 95% 2009-04-13 14:16:17 61.135.147.172:80 2.1950 Transp. CN Y 98% 2009-04-13 14:16:17 222.255.237.61:8080 2.1970 Transp. VN Y 73% 2009-04-13 14:16:17 217.15.188.11:3128 2.1990 Transp. KZ Y 90% 2009-04-13 14:17:19 69.62.141.46:3128 2.2100 Transp. US Y 69% 2009-04-13 14:17:19 60.206.196.152:80 2.2150 Transp. CN N 41% 2009-04-13 14:17:19 218.26.1.204:8080 2.2220 Transp. CN N 99% 2009-04-13 14:17:19 211.115.185.42:8080 2.2520 Transp. N 100% 2009-04-13 14:16:17 118.98.184.162:80 2.2750 Transp. ID Y 79% 2009-04-13 14:16:1 124.206.218.5:80 2.3940 Transp. CN Y 97% 2009-04-13 14:16:17 200.93.139.230:3128 2.4180 Transp. CR Y 96% 2009-04-13 14:16:17 86.47.180.235:6654 2.4300 Elite IE N 4% 2009-04-13 14:04:17 Die Ip Adresse und den dazugehörigen Port rauszufiltern.... Den restlichen schmarn will ich in der txt nicht mehr haben, hab aber auch keine lust erstmal alle 5000 einträge zu bearbeiten. Ich weis das das ja irgendwie über reg ausdrücke laufen muss, aber ... wie?! ^^°° ich weis nur das ich mit preg_match dinge "finden" kann,wie kann man den rest wegschneiden... der reg müsste ja ungefähr so aussehen : preg_match ( '/ [0-255] . [0-255] .[0-255].[0-255]: [0-10000] /' ); + Multi-Zitat Zitieren
#2 13. April 2009 AW: Aus String Ip+Port rausfiltern Gehste mit explode() (PHP: explode - Manual) vor. + Multi-Zitat Zitieren
#3 13. April 2009 AW: Aus String Ip+Port rausfiltern preg_match_all('/([0-255].[0-255].[0-255].[0-255]:[0-10000])/',$input,$output); print_r($output); + Multi-Zitat Zitieren
#4 13. April 2009 AW: Aus String Ip+Port rausfiltern Wenn du es mit preg_match machen willst, gibst du einfach jedem "rausgeschnittenen" eine eigene Klammer und nicht allem insgesamt eine. Dann kannst du per $1,$2,$3 ect. auf die Ausgabe zurückgreifen. + Multi-Zitat Zitieren
#5 13. April 2009 AW: Aus String Ip+Port rausfiltern ach kann man bei explode regs angeben ja ? wusste ich nicht, ich dachte es gehen nur normale delimiter.... // danke telefon ^^ .. bedankos sind raus... + Multi-Zitat Zitieren
#6 13. April 2009 AW: Aus String Ip+Port rausfiltern PHP: <? $ips = '21.22.29.182:80 2.1090 Transp. CN Y 94% 2009-04-13 14:16:17211.53.208.28:3128 2.1430 Transp. Y 100% 2009-04-13 14:16:17190.144.117.170:3128 2.1440 Elite CR ? 47% 2009-04-13 14:07:1782.44.239.26:9090 2.1470 Anon. GB N 25% 2009-04-13 14:07:17212.93.193.82:443 2.1600 Transp. SA Y 100% 2009-04-13 14:16:17222.124.206.45:8080 2.1850 Transp. ID Y 95% 2009-04-13 14:16:1761.135.147.172:80 2.1950 Transp. CN Y 98% 2009-04-13 14:16:17222.255.237.61:8080 2.1970 Transp. VN Y 73% 2009-04-13 14:16:17217.15.188.11:3128 2.1990 Transp. KZ Y 90% 2009-04-13 14:17:1969.62.141.46:3128 2.2100 Transp. US Y 69% 2009-04-13 14:17:1960.206.196.152:80 2.2150 Transp. CN N 41% 2009-04-13 14:17:19218.26.1.204:8080 2.2220 Transp. CN N 99% 2009-04-13 14:17:19211.115.185.42:8080 2.2520 Transp. N 100% 2009-04-13 14:16:17118.98.184.162:80 2.2750 Transp. ID Y 79% 2009-04-13 14:16:1124.206.218.5:80 2.3940 Transp. CN Y 97% 2009-04-13 14:16:17200.93.139.230:3128 2.4180 Transp. CR Y 96% 2009-04-13 14:16:1786.47.180.235:6654 2.4300 Elite IE N 4% 2009-04-13 14:04:17' ; if( preg_match_all ( '=[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{1,8}=' , $ips , $matches )) echo '<pre>' . print_r ( $matches , true ) . '</pre>' ; else echo 'Es wurden keine IPs gefunden!' ; ?> + Multi-Zitat Zitieren
#7 13. April 2009 AW: Aus String Ip+Port rausfiltern Cool, letzteres funzt super =) danke... nu könnte man doch noch utnerscheiden, wenn zB der port per tab angegeben ist oder? im moment filtert er nur die die per ":" angegeben sind. Doch bei manchen seiten wird es per "127.0.0.1 80 bla bla blubb bla" angegeben könnte man da noch per "\t" als unterscheidung zum ":" filtern? oder is das weniger praktikabel? + Multi-Zitat Zitieren
#8 13. April 2009 AW: Aus String Ip+Port rausfiltern Eigentlich nicht aber sorry, ich hatte das wohl falsch verstanden.. wie die Vorredner schn sagen eihgnet sich "preg_match()" natürlich dafür wesentlich besser + Multi-Zitat Zitieren
#9 13. April 2009 AW: Aus String Ip+Port rausfiltern PHP: <? $ips = '21.22.29.182:80 2.1090 Transp. CN Y 94% 2009-04-13 14:16:17211.53.208.28:3128 2.1430 Transp. Y 100% 2009-04-13 14:16:17190.144.117.170:3128 2.1440 Elite CR ? 47% 2009-04-13 14:07:1782.44.239.26:9090 2.1470 Anon. GB N 25% 2009-04-13 14:07:17212.93.193.82:443 2.1600 Transp. SA Y 100% 2009-04-13 14:16:17222.124.206.45:8080 2.1850 Transp. ID Y 95% 2009-04-13 14:16:1761.135.147.172:80 2.1950 Transp. CN Y 98% 2009-04-13 14:16:17222.255.237.61 8080 2.1970 Transp. VN Y 73% 2009-04-13 14:16:17217.15.188.11 3128 2.1990 Transp. KZ Y 90% 2009-04-13 14:17:1969.62.141.46 3128 2.2100 Transp. US Y 69% 2009-04-13 14:17:1960.206.196.152:80 2.2150 Transp. CN N 41% 2009-04-13 14:17:19218.26.1.204:8080 2.2220 Transp. CN N 99% 2009-04-13 14:17:19211.115.185.42 8080 2.2520 Transp. N 100% 2009-04-13 14:16:17118.98.184.162:80 2.2750 Transp. ID Y 79% 2009-04-13 14:16:1124.206.218.5:80 2.3940 Transp. CN Y 97% 2009-04-13 14:16:17200.93.139.230 3128 2.4180 Transp. CR Y 96% 2009-04-13 14:16:1786.47.180.235:6654 2.4300 Elite IE N 4% 2009-04-13 14:04:17' ; if(! preg_match_all ( '=([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?:\s|:)+([0-9]{1,8})=' , $ips , $pregmatches )) die( 'Es wurden keine IPs gefunden!' ); $precalc = sizeof ( $pregmatches [ 0 ]);for( $a = 0 ; $a < $precalc ; ++ $a ) $matches [] = $pregmatches [ 1 ][ $a ] . ':' . $pregmatches [ 2 ][ $a ]; echo '<pre>' . print_r ( $matches , true ) . '</pre>' ; ?> + Multi-Zitat Zitieren