Есть ли функция для анализа IP-адреса на 4 целых числа в iOS?

Что-то вроде inet_addr("127.0.0.1")?

3 ответа

NSString *ipAddress = [NSString stringWithString:@"127.0.0.1"];
NSArray *results = [ipAddress componentsSeparatedByString:@"."];
if ([results count] == 4) { NSLog(@"1 - %d", [[results objectAtIndex:0] intValue]); NSLog(@"2 - %d", [[results objectAtIndex:1] intValue]); NSLog(@"3 - %d", [[results objectAtIndex:2] intValue]); NSLog(@"4 - %d", [[results objectAtIndex:3] intValue]);
} else { NSLog(@"not valid ip");
}


Я думаю, вам, вероятно, стоит обратиться к руководству по программированию строк. Если это что-то простое, вы можете просто сделать что-то вроде

... [yourSting stringcomponetsSeparatedByString@"."]; //('formatting String Objects' section)

или вы можете сделать что-то, что будет включать сканеры из кода примера Apple (раздел "Сканеры"), чтобы вы могли искать нужную строку по своему желанию:

NSString *string = @"Product: Acme Potato Peeler; Cost: 0.98 73\n\
Product: Chef Pierre Pasta Fork; Cost: 0.75 19\n\
Product: Chef Pierre Colander; Cost: 1.27 2\n";
NSCharacterSet *semicolonSet;
NSScanner *theScanner;
NSString *PRODUCT = @"Product:";
NSString *COST = @"Cost:";
NSString *productName;
float productCost;
NSInteger productSold;
semicolonSet = [NSCharacterSet characterSetWithCharactersInString:@";"];
theScanner = [NSScanner scannerWithString:string];
while ([theScanner isAtEnd] == NO)
{
if ([theScanner scanString:PRODUCT intoString:NULL] &&
[theScanner scanUpToCharactersFromSet:semicolonSet
intoString:&productName] &&
[theScanner scanString:@";" intoString:NULL] &&
[theScanner scanString:COST intoString:NULL] &&
[theScanner scanFloat:&productCost] &&
[theScanner scanInteger:&productSold])
{
NSLog(@"Sales of %@: $%1.2f", productName, productCost * productSold);
}
}

Удачи


Вы должны называть что-то вроде

inet_pton(AF_INET, "239.255.255.250", &broadcastAddr.sin_addr);

вы должны включить

#include

licensed under cc by-sa 3.0 with attribution.