如何将IP地址的整数值转换为标准IP地址

发布于 2025-01-18 12:01:38 字数 351 浏览 0 评论 0原文

请您能帮我如何将IP地址的整数值转换为标准IP地址吗?

从中获得整数的价值

tmpWifiServiceNative:= TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.WIFI_SERVICE);

tmpWifiManager:= TJWifiManager.Wrap((tmpWifiServiceNative as ILocalObject).GetObjectID);

tmpWifiIPAddress:= tmpWifiManager.getDhcpInfo.ipAddress //This returns integer value

Pls. can you help me how to convert integer value of ip address to standard ip address?

A got integer value from

tmpWifiServiceNative:= TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.WIFI_SERVICE);

tmpWifiManager:= TJWifiManager.Wrap((tmpWifiServiceNative as ILocalObject).GetObjectID);

tmpWifiIPAddress:= tmpWifiManager.getDhcpInfo.ipAddress //This returns integer value

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟若柳尘 2025-01-25 12:01:38

只需使用这个函数:

uses
  Androidapi.Helpers,
  Androidapi.JNIBridge,
  Androidapi.JNI.Java.Net,
  Androidapi.JNI.JavaTypes;
  

function ConvertIntegerIPAddressToString(AIntegerIPAddress: Integer): string;
var
  IPAddress: Integer;
  SystemByte: TJavaArray<Byte>;
  InetAddress: JInetAddress;
begin
  if (TJByteOrder.JavaClass.nativeOrder.equals(TJByteOrder.JavaClass._GetLITTLE_ENDIAN)) then
    IPAddress:= TJInteger.JavaClass.reverseBytes(AIntegerIPAddress)
  else
    IPAddress:= AIntegerIPAddress;
    
  SystemByte:= TJBigInteger.JavaClass.valueOf(IPAddress).toByteArray;
    
  try
    InetAddress:= TJInetAddress.JavaClass.getByAddress(SystemByte);
    
    Result:= JStringToString(InetAddress.getHostAddress);
  except
    Result:= 'Convert error';
  end;
end;

Simply use this function:

uses
  Androidapi.Helpers,
  Androidapi.JNIBridge,
  Androidapi.JNI.Java.Net,
  Androidapi.JNI.JavaTypes;
  

function ConvertIntegerIPAddressToString(AIntegerIPAddress: Integer): string;
var
  IPAddress: Integer;
  SystemByte: TJavaArray<Byte>;
  InetAddress: JInetAddress;
begin
  if (TJByteOrder.JavaClass.nativeOrder.equals(TJByteOrder.JavaClass._GetLITTLE_ENDIAN)) then
    IPAddress:= TJInteger.JavaClass.reverseBytes(AIntegerIPAddress)
  else
    IPAddress:= AIntegerIPAddress;
    
  SystemByte:= TJBigInteger.JavaClass.valueOf(IPAddress).toByteArray;
    
  try
    InetAddress:= TJInetAddress.JavaClass.getByAddress(SystemByte);
    
    Result:= JStringToString(InetAddress.getHostAddress);
  except
    Result:= 'Convert error';
  end;
end;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文