home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Open Transport / OT1.1 Developer Release / Open Transport SDK / Open Tpt Client Developer / Samples / Internet / OTGetInterfaceInfoSample.cp < prev    next >
Encoding:
Text File  |  1996-11-19  |  3.3 KB  |  146 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        OTGetInterfaceInfoSample.cp
  3.  
  4.     Contains:    Sample showing use of OTInetGetInterfaceInfo 
  5.  
  6.     Copyright:    © 1994-1995 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10. #include <Types.h>
  11. #include <Events.h>
  12. #include <SegLoad.h>
  13. #include <String.h>
  14. #include <strings.h>
  15. #include <Quickdraw.h>
  16. #include <Stdio.h>
  17. #include <StdLib.h>
  18. #include <TextUtils.h>
  19. #include <Desk.h>
  20. #include <OpenTransport.h>
  21. #include <OpenTptInternet.h>
  22.  
  23.  
  24. OTResult            gTestResult = kOTNoError;
  25.  
  26. long                gNumber = 0;
  27.  
  28. InetInterfaceInfo    gMyInfo;
  29.  
  30. union
  31. {
  32.     InetHost    addr;
  33.     UInt8        bytes[4];
  34. } gTmpAddr;
  35.  
  36. void Inits()
  37. {
  38.     /*
  39.      * Do standard inits
  40.      */
  41.     InitGraf(&qd.thePort);
  42.     if ( InitOpenTransport() != kOTNoError )
  43.     {
  44.         fprintf(stderr, "GetInterfaceInfo: Could not initialize ASLM, exiting\n");
  45.         exit(1);
  46.     }
  47. }
  48.  
  49. void bzero(UInt8* start, size_t size)
  50. {
  51.     do
  52.     {
  53.         *start++ = 0;
  54.     } while (--size);
  55. }
  56.  
  57. int main()
  58. {
  59.     char    mystr[kMaxHostNameLen];
  60.     OSErr    err;
  61.     long    i;
  62.     UInt16     j;
  63.     
  64.     Inits();
  65.     fflush(stdout);
  66.     
  67.     do
  68.     {
  69.         fprintf(stderr, "How many interfaces would you like information about? \nEnter a number from 1 to 10: \n");
  70.         if ( gets(mystr) != 0 ) 
  71.             stringtonum(mystr, &gNumber);
  72.         else
  73.         {
  74.             fprintf(stderr, "Couldn't get number from window!\n");
  75.             return(1);
  76.         }
  77.         if (gNumber < 1)
  78.         {
  79.             fprintf(stderr, "Sorry; %d is an invalid entry for this test\n", gNumber);
  80.             break;
  81.         }
  82.         for (i = 0; i < gNumber; i++)
  83.         {
  84.             bzero((UInt8*)&gMyInfo, sizeof(InetInterfaceInfo));
  85.             err = OTInetGetInterfaceInfo(&gMyInfo, i);
  86.             if (err != kOTNoError)
  87.             {
  88.                 if (err == kOTNotFoundErr)
  89.                 {
  90.                     fprintf(stderr, "Interface %d: Does Not Exist\n", i);
  91.                     break;
  92.                 }
  93.                 else
  94.                 {
  95.                     fprintf(stderr, "Error! GetInterfaceInfo returns %d\n", err);
  96.                     break;
  97.                 }
  98.             }
  99.             gTmpAddr.addr = gMyInfo.fAddress;
  100.             fprintf(stderr, "Interface %d : Address = %d.%d.%d.%d\n ", i, gTmpAddr.bytes[0],
  101.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  102.             gTmpAddr.addr = gMyInfo.fNetmask;
  103.             fprintf(stderr, "Netmask = %d.%d.%d.%d\n ",  gTmpAddr.bytes[0],
  104.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  105.             if (gMyInfo.fBroadcastAddr != NULL)
  106.             {
  107.                 gTmpAddr.addr = gMyInfo.fBroadcastAddr;
  108.                 fprintf(stderr, "Broadcast Address = %d.%d.%d.%d\n",  gTmpAddr.bytes[0], 
  109.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  110.             }    
  111.             fprintf(stderr, "Interface MTU = %d\n ", gMyInfo.fIfMTU);
  112.             if (gMyInfo.fHWAddrLen > 0)
  113.             {
  114.                 fprintf(stderr, "Interface hardware address = ");
  115.                 for(j = 0; j < gMyInfo.fHWAddrLen; j++)
  116.                 {
  117.                     fprintf(stderr, "%2d", gMyInfo.fHWAddr[j]);
  118.                     if (j < (gMyInfo.fHWAddrLen - 1))
  119.                     {
  120.                         fprintf(stderr, ":");
  121.                     }
  122.                 }
  123.                 fprintf(stderr, "\n");
  124.             }
  125.             else
  126.             {
  127.                 fprintf(stderr, "There is no hardware address associated with this interface\n");
  128.             }
  129.             gTmpAddr.addr = gMyInfo.fDefaultGatewayAddr;
  130.             fprintf(stderr, "Default Gateway Address = %d.%d.%d.%d\n",  gTmpAddr.bytes[0],
  131.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  132.             gTmpAddr.addr = gMyInfo.fDNSAddr;
  133.             fprintf(stderr, "Domain Name Server Address = %d.%d.%d.%d\n",  gTmpAddr.bytes[0],
  134.                     gTmpAddr.bytes[1], gTmpAddr.bytes[2], gTmpAddr.bytes[3]);
  135.             if (gMyInfo.fDomainName[0] != NULL)
  136.                 fprintf(stderr, "Domain Name = %s", gMyInfo.fDomainName);
  137.             fprintf(stderr, "\n");
  138.         }    
  139.     } while ( false );
  140.     
  141.     fprintf(stderr, "Tests Completed.\n");
  142.     return 0;
  143. }
  144.  
  145.  
  146.