यूनिक्स सॉकेट - आईपी एड्रेस फ़ंक्शंस

यूनिक्स आपको आईपी पते में हेरफेर करने में मदद करने के लिए विभिन्न फ़ंक्शन कॉल प्रदान करता है। ये फ़ंक्शन ASCII स्ट्रिंग्स (जो मनुष्य उपयोग करना पसंद करते हैं) और नेटवर्क बाइट द्वारा बाइनरी मान (सॉकेट एड्रेस संरचनाओं में संग्रहीत मान) के बीच इंटरनेट पते को परिवर्तित करते हैं।

निम्नलिखित तीन फ़ंक्शन कॉल IPv4 एड्रेसिंग के लिए उपयोग किए जाते हैं -

  • int inet_aton (const char * strptr, struct in_addr * addrptr)
  • in_addr_t inet_addr (const char * strptr)
  • चार * inet_ntoa (संरचना in_addr inaddr)

int inet_aton (const char * strptr, struct in_addr * addrptr)

यह फ़ंक्शन कॉल इंटरनेट मानक डॉट नोटेशन में निर्दिष्ट स्ट्रिंग को नेटवर्क पते पर कनवर्ट करता है, और प्रदान की गई संरचना में पते को संग्रहीत करता है। परिवर्तित पता नेटवर्क बाइट ऑर्डर (बाइट्स से बाएं से दाएं) के क्रम में होगा। यह 1 लौटाता है अगर स्ट्रिंग वैध थी और 0 त्रुटि पर।

निम्नलिखित उपयोग उदाहरण है -

#include <arpa/inet.h>

(...)

   int retval;
   struct in_addr addrptr
   
   memset(&addrptr, '\0', sizeof(addrptr));
   retval = inet_aton("68.178.157.132", &addrptr);

(...)

in_addr_t inet_addr (const char * strptr)

यह फ़ंक्शन कॉल इंटरनेट मानक डॉट नोटेशन में निर्दिष्ट स्ट्रिंग को इंटरनेट पते के रूप में उपयोग करने के लिए उपयुक्त पूर्णांक मान में कनवर्ट करता है। परिवर्तित पता नेटवर्क बाइट ऑर्डर (बाइट्स से बाएं से दाएं) के क्रम में होगा। यह एक 32-बिट बाइनरी नेटवर्क बाइट का आदेश दिया IPv4 पता और INADDR_NONE त्रुटि पर।

निम्नलिखित उपयोग उदाहरण है -

#include <arpa/inet.h>

(...)

   struct sockaddr_in dest;

   memset(&dest, '\0', sizeof(dest));
   dest.sin_addr.s_addr = inet_addr("68.178.157.132");
   
(...)

चार * inet_ntoa (संरचना in_addr inaddr)

यह फ़ंक्शन कॉल इंटरनेट मानक डॉट नोटेशन में निर्दिष्ट इंटरनेट होस्ट पते को स्ट्रिंग में कनवर्ट करता है।

निम्नलिखित उपयोग उदाहरण है -

#include <arpa/inet.h>

(...)

   char *ip;
   
   ip = inet_ntoa(dest.sin_addr);
   
   printf("IP Address is: %s\n",ip);
   
(...)