2012-10-23 56 views
0

說我有一個的NSString 的NSString * myIpAddress = @「192.168.1.1」的iOS轉換IP地址整數和向後

我想這個轉換爲整數 - 增加它的,然後將其轉換回的NSString。

除了使用位掩碼和移位以及sprintf以外,iOS是否有一個簡單的方法來執行此操作?

回答

5

這樣的事情是我做的my app

NSArray *ipExplode = [string componentsSeparatedByString:@"."]; 
int seg1 = [ipExplode[0] intValue]; 
int seg2 = [ipExplode[1] intValue]; 
int seg3 = [ipExplode[2] intValue]; 
int seg4 = [ipExplode[3] intValue]; 

uint32_t newIP = 0; 
newIP |= (uint32_t)((seg1 & 0xFF) << 24); 
newIP |= (uint32_t)((seg2 & 0xFF) << 16); 
newIP |= (uint32_t)((seg3 & 0xFF) << 8); 
newIP |= (uint32_t)((seg4 & 0xFF) << 0); 

newIP++; 
NSString *newIPStr = [NSString stringWithFormat:@"%u.%u.%u.%u", 
     ((newIP >> 24) & 0xFF), 
     ((newIP >> 16) & 0xFF), 
     ((newIP >> 8) & 0xFF), 
     ((newIP >> 0) & 0xFF)]; 
+0

我想你會需要 INT SEG1 = [[ipExplode objectAtIndex:0]的intValue]; – OneGuyInDc

+0

不正確。這是使用文字語法。 – mattjgalloway