# Problem bei Überprüfung und Spliten von einer IP!



## OldSchool (7. Nov 2004)

Hi @ all!

Bräucht mal schnell eure Hilfe. Häng schon ewig rum bei der IP-Sache und komm auf den Fehler nicht drauf.
Also, hab folgenden Code (siehe Anschluss).

Ich teste zuerst mit der Pattern Klasse, ob das IP-Format des Strings ip korrekt ist. Das haut hin.
Dann muss ich natürlich noch testen, ob alle Teilziffern < 255 sind. Jedoch bekomm ich bei *ipTokens = ip.split(".")* 
immer ein Array der Länge 0 zurück. Warum????


```
public static void main(String[] args) {

		String ip = "1.205.266.555";
		String[] ipTokens;
		boolean validIPFormat;
		boolean validIP;

		Pattern p = Pattern.compile( "([0-9]{1,3}+).([0-9]{1,3}+).([0-9]{1,3}+).([0-9]{1,3})" );

		Matcher m = p.matcher(ip);
		validIPFormat = m.matches();

		System.out.println("Format valid: " + validIPFormat);

		validIP = true;

		if(validIPFormat) {
			ipTokens = ip.split("."); // HIER SPLIT ICH JETZT DIE TEILZIFFERN HERAUS UND SPEICHER DAS GANZE IN EINEM STRING ARRAY

			System.out.print("Length " + ipTokens.length + " "); // DIE LÄNGE DES ARRAYS IS 0?!!!



			for(int i=0; i < ipTokens.length && validIP; i++) {
				System.out.print(ipTokens[i] + " ");
				int partIp = Integer.parseInt(ipTokens[i]);
				
				if(partIp < 0 || partIp > 255)
					validIP = false;

			} // for
		} // if

		System.out.println("Ip valid: " + validIP);
		
	}
```
[/b]


----------



## Guest (7. Nov 2004)

Warum nicht gleich so?
	
	
	
	





```
boolean gueltig = false;
try
{
  byte adr[] = InetAddress.getByName("127.0.0.1").getAddress();
  gueltig = true;
}
catch(UnknownHostException e)
{
}
```


----------



## Roar (7. Nov 2004)

weil der punkt in den regular expressions ein sonderzeichen ist:
blupp.split("\\.");
^^ so


----------

