IP na string do bloków int

0

witam

mam adres ip zapisany w stringu

string ip="172.16.0.1";

i chciałbym go przekształcić w postać taką, że wyodrębnione są poszczególne segmenty (między kropkami) do zmiennych int. cel jaki chciałbym osiągnąć to zmienna int a=172 b=16 c=0 d=1 (tak rozpisany każdy zadany do algorytmu adres)

Czy ktoś mógłby mi pomóc w napisaniu tego? Męcze się z tym już cały wieczór i nic :|


pozdrawiam

0

jaja sobie robisz, że nie wiesz jak?
Jest tuzin sposobów.
Ja preferuje stingstream:

istringstream ipStream(ip);
char ch;
ipStream>>a>>ch>>b>>ch>>c>>ch>>d;

Wersja C:

sscanf(ip, "%d.%d.%d.%d", &a, &b, &c, &d,);
0
int inet_aton(const char *cp, struct in_addr *inp);

struct in_addr {
  unsigned long int s_addr;
}
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>

#define ADDRSIZE sizeof(unsigned long int)

int main(){
  unsigned char ip[ADDRSIZE];
  char* addr="10.11.12.13";
  inet_aton(addr,(struct in_addr*)&ip);
  int i;
  for(i=0;i<ADDRSIZE;i++)printf("%d\n",ip[i]);
  return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1