Solved

convert a network address into a dottted string.

Posted on 1998-12-18
4
217 Views
Last Modified: 2008-03-03
I want to know how to convert an (int)IP into a standard dotted format string.

I know about inet_ntoa, but I want to do know how to it directly???????

thanks
 
0
Comment
Question by:cosmicmike
  • 2
4 Comments
 
LVL 3

Expert Comment

by:marcjb
ID: 1255293
Start by converting the number to a string.  This can be done with the sprintf function.

#include<stdio.h>

int main()
{
int num = 8989;
char the_num[15];
sprintf(the_num, "%i", num);
return 0;
}

The code above puts the number 8989 into the string the_num.

You could then manipulate this string however you like, including using a function like sprintf again to place '.' where you need.

0
 
LVL 32

Expert Comment

by:jhance
ID: 1255294
marcjb,

This won't always work right as it fails to take into account the machine's byte ordering scheme.

cosmic,

I fail to see your reluctance to do it the right way:

#include "stdio.h"
#include "winsock.h"

int main(int argc, char* argv[])
{
      struct in_addr in;
      in.S_un.S_addr = 0x12345678;


      printf("%s\n", inet_ntoa(in));
      return 0;
}
0
 

Author Comment

by:cosmicmike
ID: 1255295
sorry marcjb your solution is not 100%

jhance
ok I have an array of int IP nums and I want to convert them in a for next loop and put the dotted results in a char array !!

0
 
LVL 32

Accepted Solution

by:
jhance earned 50 total points
ID: 1255296
OK, how about this?


#include "stdio.h"
#include "winsock.h"

int main(int argc, char* argv[])
{
      char cIP[16][16];
      int iIP[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
      int i;

      struct in_addr in;

      for(i=0; i<16; i++){
            in.S_un.S_addr = iIP[i];
            strcpy(cIP[i], inet_ntoa(in));
      }


      for(i=0; i<16; i++){
            printf("0x%x = %s\n", iIP[i], cIP[i]);
      }

      return 0;
}
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
how to understand recursion 12 229
C++ :Change value from  DisableCMD registry 4 65
delete-remove 14 97
Detect Closed Loops (circles, figure-8s, etc) in PNG Images 6 56
This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use for-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question