首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ip2location数据库将IP号转换为IP地址时出错?

从ip2location数据库将IP号转换为IP地址时出错?
EN

Stack Overflow用户
提问于 2022-11-23 12:36:03
回答 1查看 34关注 0票数 0

我已经下载了csv格式的ip2location数据库,读取了第1列数据,并按照ip2location FAQ中的建议,使用下面的代码将IP号转换成IP地址。

样本CSV数据:

代码语言:javascript
复制
function Convert-NumbetToIP
{
    param(
    [Parameter(Mandatory=$true)][string]$number
    )

    try
    {    
        $w = [int]($number/16777216)%256
        $x = [int]($number/65536)%256
        $y = [int]($number/256)%256
        $z = [int]$number%256

        $ipAddress = "$w.$x.$y.$z"
        Write-Host "Actual IP Address - $ipAddress"

        Write-Host "Returning IP Address"
        return $ipAddress
    }
    catch
    {
        throw $_
    }
}

Convert-NumbetToIP -number 2147483648

但是不能将值"2147483648“转换为键入"System.Int32”。错误:“对于Int32来说,值要么太大要么太小。”

谁能帮我得到正确的IP地址,也请让我知道什么类型的数据是在第二栏。

EN

回答 1

Stack Overflow用户

发布于 2022-11-24 16:54:05

我通过将int改为int64找到了答案

代码语言:javascript
复制
function Convert-NumbetToIP
{
    param(
    [Parameter(Mandatory=$true)][string]$number
    )

    try
    {    
        $w = [int64]($number/16777216)%256
        $x = [int64]($number/65536)%256
        $y = [int64]($number/256)%256
        $z = [int64]$number%256

        $ipAddress = "$w.$x.$y.$z"
        Write-Host "Actual IP Address - $ipAddress"

        Write-Host "Returning IP Address"
        return $ipAddress
    }
    catch
    {
        throw $_
    }
}

Convert-NumbetToIP -number 2147483648
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74546895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档