程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将 DEC 转换为 IP 飞镖大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将 DEC 转换为 IP 飞镖?

开发过程中遇到将 DEC 转换为 IP 飞镖的问题如何解决?下面主要结合日常开发的经验,给出你关于将 DEC 转换为 IP 飞镖的解决方法建议,希望对你解决将 DEC 转换为 IP 飞镖有所启发或帮助;

我得到一个 int32 : -1407942911,我需要将其转换为 ip

我用过这个功能:

_setIp(int _ip){
    var _strData = StringBuffer();
    for (int i = 0; i<4; i++){
      _strData.write(_ip &0xff );
      if (i < 3) {
        _strData.write(".");
      }
      _ip = _ip >> 8;
    }
    return _strData.toString();
}

但是我得到的 ip 倒过来了:1.127.20.172 而不是 172.20.127.1

我试图复制这个 java 代码

 public String longToIp(long ip) {
    StringBuilder result = new StringBuilder(15);

    for (int i = 0; i < 4; i++) {
        
        result.insert(0,Long.toString(ip & 0xff));

        if (i < 3) {
            sb.insert(0,'.');
        }

        ip = ip >> 8;
    }
    return result.toString();
  }

更新

我解决了错误

    static setIp(int _ip){
        var _strData = StringBuffer();
        for (int i = 0; i<4; i++){
          _strData.write(_ip >> 24 &0xff );
          if (i < 3) {
            _strData.write(".");
          }
          _ip = _ip << 8;
        }
        return _strData.toString();
      }

解决方法

你可以这样做:

import 'dart:io';
import 'dart:typed_data';

void main() {
  print(getIpFromInt32Value(-1407942911)); // 172.20.127.1
}

String getIpFromInt32Value(int value) => InternetAddress.fromRawAddress(
        (ByteData(4)..seTint32(0,value)).buffer.asUint8List())
    .address;

大佬总结

以上是大佬教程为你收集整理的将 DEC 转换为 IP 飞镖全部内容,希望文章能够帮你解决将 DEC 转换为 IP 飞镖所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。