【问题标题】:What kind of results can I expect from Request.UserHostAddress?我可以从 Request.UserHostAddress 获得什么样的结果?
【发布时间】:2018-08-09 00:03:07
【问题描述】:

我需要保存我的用户的 IP 地址以唯一标识他们 - 我想避免使用帐户系统。根据the answer这个问题,我需要使用Request.UserHostAddress。

但是,我不想将 IP 地址保存为字符串,而是保存为整数。我已经创建了一个函数来将常规 IPv4 地址转换为它们的等效数字。我可以从 Request.UserHostAddress 获得什么样的格式(作为字符串)?我也想扩展我的功能来处理 IPv6 地址,但我想知道我可以从 Request.UserHostAddress 中得到的不同类型的格式,特别是考虑到如何缩短 IPv6 地址。

【问题讨论】:

  • 您是否考虑过为此使用开箱即用的IPAddress class 而不是自己解析它?
  • @Andrei =O 现在我觉得自己像个白痴,我怎么从来没有发现过这个?应该在我的搜索中使用“解析器”而不是“IP地址到数字”......是的,我想我是否可以在将其转换为 IPAddress 实例后从中获取数值,那么您几乎回答了我的问题.如果需要,请将其添加为答案。

标签: asp.net-mvc


【解决方案1】:

与其担心此属性可能向您抛出的特定格式,不如考虑使用 System.Net 中提供的 IP 包装类:IPAddress

它提供处理 IPv4 和 IPv6 的静态 Parse(string) 方法。它还可以使用GetAddressBytes() 将地址作为字节数组提供给您,您可以根据需要将其转换为数值(这里是code sample 的操作方法)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多