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

标签 delphi delphi-11-alexandria

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

A 得到整数值

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

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

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

最佳答案

只需使用此功能:

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;

关于delphi - 如何将IP地址的整数值转换为标准IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71724268/

相关文章:

delphi - 如何防止用户输入超过 TSpinEdit.MaxValue 的值?

delphi - 在 While 循环中使用Continue

delphi - 如何消除TPaintBox右边缘的闪烁(例如调整大小时)

delphi - 如何在delphi控件中实现接口(interface)

c - 在 Delphi/C 中更快地传递参数

delphi - Delphi 11 上的 Indy SSL 出现未知协议(protocol)错误

delphi - 如何让MSBuild从DProj文件中获取DCU输出路径?

delphi - 如何阻止Delphi 11 "Close All"关闭IDE欢迎屏幕