Translating with DrWatson… this can take a few seconds the first time.
This is a genuine, complex translation. DrWatson protects commands, error codes, and log output while naturally translating the surrounding text. It’s translated once and saved.
Question: in 'onstat -g ses' output, the hostname column sometimes shows a hex string instead of a name when the client has no DNS entry — how to map it to an IP? Answered quickly: the value is just the IP in hex, split into four byte pairs and converted to decimal (e.g. a010a1e = 0a.01.0a.1e = 10.1.10.30). Two posters supplied small C programs to convert hex strings to dotted-quad form, and one noted an earlier reply's conversions were slightly wrong. Resolved.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Mike Reetz — — source: Usenet: comp.databases.informix
Sometimes the hostname is the DNS entry (i.e. human readable). Other
times, when the connecting computer does not have a DNS entry, the
value is in hex (??). How can that be changed back to an IP address?
Example:
3 values for hostname from onstat -g ses:
a010a1e
a010d22
a0e0213
Mike Reetz wrote:
> Sometimes the hostname is the DNS entry (i.e. human readable). Other
> times, when the connecting computer does not have a DNS entry, the
> value is in hex (??). How can that be changed back to an IP address?
>
> Example:
>
> 3 values for hostname from onstat -g ses:
>
> a010a1e
> a010d22
> a0e0213
>
> From netstat -a connections via sqlexec with only IP addresses:
>
> 10.1.13.34
> 10.1.10.30
> 10.14.2.19
>
> How can I map from the onstat output to the one of the IPs in the
> netstat list?
>
> Thanks,
> Mike
Hexadecimal Decimal
0a 01 0a 1e => 10.1.13.30
0a 01 0d 22 => 10.1.13.34
0a 0e 02 13 => 10.14.2.19
a010a1e = (hex) a.01.0a.1e = (dec) 10.1.10.30
a010d22 = (hex) a.01.0d.22 = (dec) 10.1.13.34
a0e0213 = (hex) a.0e.02.13 = (dec) 10.14.2.19
Mike Reetz wrote:
> Sometimes the hostname is the DNS entry (i.e. human readable). Other
> times, when the connecting computer does not have a DNS entry, the
> value is in hex (??). How can that be changed back to an IP address?
>
> Example:
>
> 3 values for hostname from onstat -g ses:
>
> a010a1e
> a010d22
> a0e0213
>
> From netstat -a connections via sqlexec with only IP addresses:
>
> 10.1.13.34
> 10.1.10.30
> 10.14.2.19
>
> How can I map from the onstat output to the one of the IPs in the
> netstat list?
>
> Thanks,
> Mike
Here's some C code to build a command line tool "unhexip":
/*
Convert hexadecimal IP addresses to standard format
Doug Lawry, comp.databases.informix, 02/11/2004
*/
main(int argc, char **argv)
{
int ip, i, n[4];
char c;
if (argc == 1)
{
printf("Usage: %s hex-ip-address [...]\\n", *argv);
exit(1);
}
while (--argc)
if (sscanf(*++argv, "%x%c", &ip, &c) != 1)
printf("Invalid hex number %s\\n", *argv);
else
{
for (i = 0; i < 4; i++)
{
n[i] = ip % 256;
ip = ip / 256;
}
printf("%d.%d.%d.%d\\n", n[3], n[2], n[1], n[0]);
}
}
--
Regards,
Doug Lawry
www.douglawry.webhop.org
"Mike Reetz" <mreetz@gmail.com> wrote in message
news:6fb5b27c.0411020703.71aff71@posting.google.com...
> Sometimes the hostname is the DNS entry (i.e. human readable). Other
> times, when the connecting computer does not have a DNS entry, the
> value is in hex (??). How can that be changed back to an IP address?
>
> Example:
>
> 3 values for hostname from onstat -g ses:
>
> a010a1e
> a010d22
> a0e0213
>
> From netstat -a connections via sqlexec with only IP addresses:
>
> 10.1.13.34
> 10.1.10.30
> 10.14.2.19
>
> How can I map from the onstat output to the one of the IPs in the
> netstat list?
>
> Thanks,
> Mike
↪ replying to Claus Samuelsen
Mike Reetz — — source: Usenet: comp.databases.informix
Thanks all for the replies!
Mike
Claus Samuelsen <csa@eye-bee-em.com> wrote in message news:<4187aade$0$33741$14726298@news.sunsite.dk>...
> a010a1e = (hex) a.01.0a.1e = (dec) 10.1.10.30
> a010d22 = (hex) a.01.0d.22 = (dec) 10.1.13.34
> a0e0213 = (hex) a.0e.02.13 = (dec) 10.14.2.19
>
>
> Mike Reetz wrote:
>
> > Sometimes the hostname is the DNS entry (i.e. human readable). Other
> > times, when the connecting computer does not have a DNS entry, the
> > value is in hex (??). How can that be changed back to an IP address?
> >
> > Example:
> >
> > 3 values for hostname from onstat -g ses:
> >
> > a010a1e
> > a010d22
> > a0e0213
> >
> > From netstat -a connections via sqlexec with only IP addresses:
> >
> > 10.1.13.34
> > 10.1.10.30
> > 10.14.2.19
> >
> > How can I map from the onstat output to the one of the IPs in the
> > netstat list?
> >
> > Thanks,
> > Mike
↪ replying to Mike Reetz
Art S. Kagel — — source: Usenet: comp.databases.informix
On Tue, 02 Nov 2004 10:03:06 -0500, Mike Reetz wrote:
> Sometimes the hostname is the DNS entry (i.e. human readable). Other
> times, when the connecting computer does not have a DNS entry, the value is
> in hex (??). How can that be changed back to an IP address?
<SNIP>
> How can I map from the onstat output to the one of the IPs in the netstat
> list?
Claus' translations look right to me, TBP's are off a bit.
Here's another C translator that's a bit simpler:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <strings.h>
int main( int argc, char **argv )
{
union {
int whole;
char parts[4];
} hexnum;
char buff[1024];
while (fgets( buff, 1024, stdin ) != (char *)NULL ) {
hexnum.whole = strtol( buff, (char **)NULL, 16 );
printf( "%08x = %d.%d.%d.%d\\n", (int)hexnum.parts[0],
(int)hexnum.parts[1], (int)hexnum.parts[2],
(int)hexnum.parts[3] );
}
}
Art S. Kagel
We use strictly necessary cookies to make this site work. With your
consent we’d also use optional cookies for analytics and marketing. You can accept all,
reject all, or choose. Read our Cookie Policy.