Home > Enterprise >  How to convert integer value of ip address to standard IP address
How to convert integer value of ip address to standard IP address

Time:04-04

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

CodePudding user response:

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;
  • Related