Questo è quello che ho combinato ma come ripeto restituisce IP a caso sempre diversi..

codice:
char *getip (u_long in);

int
main ()
{

  struct
    {
      struct iphdr ip;
      char data[sizeof (struct iphdr)];
    } Packet;

          printf("SOURCE IP: %s\n",getip(Packet.ip.saddr));

}

char *getip ( u_long in)
{
  struct in_addr s;
  s.s_addr = in;
  return inet_ntoa(s);
}