我应该使用什么数据类型来存储IP地址?

时间:2012-02-06 02:57:34

标签: iphone ip-address

我突然想到了这个并且决定我应该使用哪种数据类型来存储IP地址?

我想到了NSString;但如果我需要最后一位数字进行识别,我应该使用float还是double?这也是另一个问题,因为什么时候浮点数或双精度数小于1?

我可能错误地提出这个问题,因为我真的不知道如何问这个问题。

IP地址来自XML格式<IP>192.168.1.1</IP>。知道我应该怎么做吗?

5 个答案:

答案 0 :(得分:1)

使用字符串。您不需要对IP执行算术吗?

答案 1 :(得分:1)

通常将IP地址存储为字符串或整数数组。另一种选择是将其存储为32位整数。这真的取决于你想做什么。

答案 2 :(得分:1)

我会使用NSString。如果您需要逐件获取,请使用:

NSArray *pieces = [ipAddress componentsSeparatedByString: @"."];

答案 3 :(得分:1)

使用NSString您不打算使用它进行算术运算。如果您需要单独的组件,可以使用NSArray,但NSString可以很好地为您存储IP地址。

为了满足您的需求,您始终可以使用NSString方法获取字符串中的最后一个字符:

NSString *lastCharacter = [ip_string substringFromIndex: [ip_string length] - 1];

其中ip_string是保存IP地址的字符串。

编辑以回复评论:

Logan的代码是将IP地址中的每个元素以句点分隔成一个数组。因此,如果IP地址是192.168.1.1,则数组将等于(192,168,1,1)。

我的代码将整个IP地址存储在一个字符串中,然后获取该字符串中的最后一个字符。 [ip_string substringFromIndex: [ip_string length] - 1]只是获取包含IP地址的字符串中的最后一个字符。最后一个字符可以在减去一个字符处找到。

因此,如果IP地址为192.168.1.1,则lastCharacter字符串将只包含数字1

我建议使用代码,因为您声明需要对IP地址字符串中的最后一个字符执行某些操作,并且我的代码显示了如何获取最后一个字符。

答案 4 :(得分:-1)

192.168.1.1被认为是许多家用高速无线路由器的默认IP。它最初被Linksys使用,但已经被用于许多其他家庭网络产品,包括一些由Netgear和Westell等人制造的产品。

尽管IP address是许多高速宽带无线路由器的默认IP,但实际上并非如此。大量的生产商将默认IP地址设置为192.168.1.1,作为推广标准进入条件的一种方式,并使初次使用的客户能够简单有效地设置自己的网络系统变得更加简单。

可能只有Linksys以及其他无线路由器使用192.168.1.1 IP?

当然不是,鉴于192.168.1.1绝对是非公共IPv4地址,可能会设计出任何类型的笔记本电脑或计算机,调制解调器,交换机或其他网络系统来使用这个唯一的IP。尽管如此,在大多数情况下并不可取,因为有许多产品默认为192.168.1.1,而这些产品反过来可能会在许多使用相同IP的不同产品之后很快发生。如果您使用private IP address拥有多个单元,那么考虑单个网络设备可能只有一个Ip也非常重要,基本上至少有一个必须调整到另一个位置。