× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Retrieve IP Address using Telnet exit point
  • From: Jeffrey Stevens <jstevens@xxxxxxxxxxxx>
  • Date: Mon, 19 Jul 1999 10:38:00 -0400
  • Organization: IBM Corp.

Two ways to get IP address from the socket address (4 byte hex value).  Do
shift operations on each byte to get each hop, or use the inet_ntoa()
socket call to convert for you.  These are C solutions, but you can
devise your own.

Take the Connection struction from the exit point interface and do the 
following:

  /********************************************************************/
  /* Calculate the IP address for analysis.  Must store the IP in     */
  /* local var else next call to inet_ntoa() will trash it.           */
  /********************************************************************/
  pSockAddr = (struct sockaddr_in *)pConnection->Internet_address;
  pClientIP = inet_ntoa(pSockAddr->sin_addr);
  strcpy(ClientIP, pClientIP);
  iClientPort = pSockAddr->sin_port;

Or take the Connection structure again and do the following:

/**********************************************************************/
/* @function GetDottedDecAddr()                                       */
/*                                                                    */
/* Parameters:                                                        */
/*                                                                    */
/* unsigned int uiIntNetAddr                                          */
/* char  *acDottedDecimalAddr                                         */
/*                                                                    */
/* Description:                                                       */
/*                                                                    */
/* GetDottedDecAddr determines the "dotted" Internet address based on */
/* the unsigned integer representation.                               */
/**********************************************************************/
void GetDottedDecAddr(unsigned long uiIntNetAddr,
                       char *acDottedDecimalAddr)
{
   unsigned int uiPart1, uiPart2, uiPart3, uiPart4,
                ONE_BYTE    =  8,
                TWO_BYTES   = 16,
                THREE_BYTES = 24;
   /*******************************************************************/
   /* The Internet address passed here is a 32 bit (4-byte) unsigned  */
   /* integer.  The 4 pieces of the "dotted" address are contained in */
   /* the unsigned int, 1 piece per byte.  To get each piece, we need */
   /* to shift the UINT the appropriate number of bits right and/or   */
   /* left.  As we are dealing with an unsigned integer, when the     */
   /* value is shifted right, zeros are inserted into the left-most   */
   /* bit.  Zeros are always inserted into the right-most bit when    */
   /* shifting left.                                                  */
   /*******************************************************************/
   uiPart1 = uiIntNetAddr  >> THREE_BYTES;
   uiPart2 = (uiIntNetAddr << ONE_BYTE)    >> THREE_BYTES;
   uiPart3 = (uiIntNetAddr << TWO_BYTES)   >> THREE_BYTES;
   uiPart4 = (uiIntNetAddr << THREE_BYTES) >> THREE_BYTES;
   sprintf(acDottedDecimalAddr, "%d.%d.%d.%d", uiPart1, uiPart2, uiPart3,
           uiPart4);
}


-- 
J.S. (Jeffrey) Stevens  AS/400 TCP/IP (Telnet/WSG/LPD)
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.