繁体   English   中英

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

[英]What data type should I use to store an IP Address?

我突然想到了这一点,并被困在决定应该使用哪种数据类型来存储IP地址?

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

我可能会错误地问这个问题,因为我真的不知道该怎么问。

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

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

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

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

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

使用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地址字符串中的最后一个字符进行处理,而我的代码显示了如何获取最后一个字符。

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

尽管IP地址是许多高速宽带无线路由器的默认IP,但实际上并非必须如此。 许多生产者将默认IP地址设置为192.168.1.1,以此作为推销标准进动条件的方式,并使首次使用此服务的客户更简单,更简单,更有效地设置自己的网络系统。

仅Linksys以及其他无线路由器可以使用192.168.1.1 IP进行操作吗?

肯定不会,因为192.168.1.1绝对是一个非公共IPv4地址,因此可以设计出任何类型的笔记本电脑或计算机,调制解调器,交换机或其他Web系统来使用此唯一IP。 尽管如此,在大多数情况下还是不建议这样做的,因为有许多产品默认使用192.168.1.1,这反过来可能会在使用相同IP的许多不同产品之后很快出现交互问题。 考虑到单个网络设备可能只有一个Ip,这也非常重要,如果您拥有使用私有IP地址的多个设备,则基本上至少必须将一个设备调整到其他位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM