IP जानकारी जांच

IP पते के स्थानीयकरण, ISP, ASN आदि विस्तृत जानकारी की जांच करें

जांच सेटिंग्स

जांच परिणाम

कृपया IP पता दर्ज करें या 'मेरा IP पता खोजें' पर क्लिक करके जांच शुरू करें

गोपनीयता और सुरक्षा

IP जानकारी प्राप्त करने के लिए इस उपकरण का उपयोग करते समय, निम्नलिखित बातों का ध्यान रखें:

  • ℹ️ अनुरोध तीसरे पक्ष के API को भेजा जाता है, हम आपके अनुरोध इतिहास को स्टोर नहीं करते
  • ℹ️ IP स्थान जानकारी आमतौर पर शहर स्तर तक ही सटीक होती है, विशिष्ट पते तक नहीं
  • ℹ️ अधिकांश घरेलू ब्रॉडबैंड डायनामिक IP का उपयोग करते हैं, इसलिए आपका IP पता नियमित रूप से बदल सकता है
  • ℹ️ यदि आप VPN या प्रॉक्सी का उपयोग कर रहे हैं, तो परिणाम प्रॉक्सी सर्वर की जानकारी दिखाएगा

उपयोग के संदर्भ

सुरक्षा जाँच

संदिग्ध IP पतों के स्रोत की जाँच करके संभावित सुरक्षा खतरों की पहचान करें।

नेटवर्क डीबगिंग

नेटवर्क कनेक्टिविटी समस्याओं का निदान करें और सर्वर या CDN नोड के स्थान की पुष्टि करें।

भूगोलिक स्थिति

उपयोगकर्ता के IP के आधार पर स्थानीयकृत सामग्री, भाषा या सेवाएँ प्रदान करें (जैसे CDN वितरण)।

अक्सर पूछे जाने वाले प्रश्न

IP पते का स्थान निर्धारण सटीक है?

IP भूगोलिक स्थिति आमतौर पर शहर स्तर तक सटीक होती है, त्रुटि कुछ दर्जन से कई सौ किलोमीटर तक हो सकती है। IP पते से सीधे गली या भवन का पता निर्धारित नहीं किया जा सकता।

मेरा IP पता क्यों बदलता है?

अधिकांश घरेलू ब्रॉडबैंड डायनामिक IP आवंटन (DHCP) का उपयोग करते हैं, जिसमें ऑपरेटर नियमित रूप से आपका IP पता बदल देता है। उद्योग या सर्वर आमतौर पर स्थिर IP (स्टैटिक IP) का उपयोग करते हैं।

मेरा वास्तविक IP कैसे छुपाएं?

अपना वास्तविक IP छुपाने के लिए आप VPN, प्रॉक्सी सर्वर या Tor नेटवर्क का उपयोग कर सकते हैं। हालाँकि, ध्यान रखें कि ये सेवाएँ नेटवर्क गति और कुछ वेबसाइट्स तक पहुँच में प्रभाव डाल सकती हैं।

मुझे दो IP पते क्यों मिल रहे हैं?

आप शायद IPv4 और IPv6 दोनों पते रखते हैं। आधुनिक नेटवर्क IPv4 से IPv6 पर स्थानांतरित हो रहे हैं, और कई उपकरण दोनों प्रोटोकॉल का समर्थन करते हैं।

IP पता क्या है?

IP (इंटरनेट प्रोटोकॉल) पता इंटरनेट पर उपकरणों का अद्वितीय पहचानकर्ता है, जैसे कि वास्तविक दुनिया में घर का पता। प्रत्येक इंटरनेट से जुड़े उपकरण के पास एक IP पता होता है, जिसका उपयोग नेटवर्क में स्थिति और संचार के लिए किया जाता है।

IPv4 बनाम IPv6: IPv6 क्यों आवश्यक है?

IPv4 (1981)

प्रारूप: 4 दशमलव संख्याओं के समूह (जैसे 192.168.1.1)

कुल: लगभग 43 अरब पते (2³² = 4,294,967,296)

समस्या: पते लगभग समाप्त हो चुके हैं, जो 2011 में ही समाप्त हो गए थे

लंबाई: 32 बिट

IPv6 (1998)

फॉर्मेट: 8 षष्ठाधारी संख्याएँ (जैसे 2001:0db8::1)

कुल संख्या: लगभग 340 अरब अरब अरब अरब पते (2¹²⁸)

लाभ: पतों की संख्या लगभग अनंत है, जो पृथ्वी पर हर रेत के कण को आवंटित करने के लिए पर्याप्त है

लंबाई: 128 बिट

IPv4 क्यों अपर्याप्त है?

  • • विश्व जनसंख्या 8 अरब है, और प्रत्येक व्यक्ति के पास कम से कम 2-3 उपकरण हैं (मोबाइल, कंप्यूटर, टैबलेट)
  • • आईओटी उपकरणों में विस्फोटक वृद्धि (स्मार्ट होम, कार, पहनने योग्य उपकरण)
  • • उद्यम और डेटासेंटर को बड़ी संख्या में IP पतों की आवश्यकता होती है
  • • प्रारंभिक आवंटन अनुचित था (जैसे MIT के पास 16 दशलक्ष IP हैं)

विशेष IP पते के ब्लॉक

लूपबैक पता (Loopback)

127.0.0.0/8 (127.0.0.1 - 127.255.255.255)

स्थानीय परीक्षण के लिए उपयोग किया जाता है, डेटा नेटवर्क पर नहीं भेजा जाता, आमतौर पर localhost के लिए 127.0.0.1 का उपयोग किया जाता है

उपयोग: स्थानीय सेवाओं का परीक्षण, विकास और डीबगिंग

निजी पते (Private)

  • 10.0.0.0/8 (10.0.0.0 - 10.255.255.255) - A वर्ग
  • 172.16.0.0/12 (172.16.0.0 - 172.31.255.255) - B वर्ग
  • 192.168.0.0/16 (192.168.0.0 - 192.168.255.255) - C वर्ग

लोकल नेटवर्क के लिए उपयोग किए जाते हैं, सीधे इंटरनेट तक पहुँच नहीं होती, NAT रूपांतरण की आवश्यकता होती है

उपयोग: घरेलू नेटवर्क, व्यावसायिक आंतरिक नेटवर्क

APIPA पता

169.254.0.0/16

जब DHCP सर्वर उपलब्ध नहीं होता, तो सिस्टम द्वारा स्वचालित रूप से आवंटित अस्थायी पता

उपयोग: स्वचालित कॉन्फ़िगरेशन (नेटवर्क कॉन्फ़िगरेशन विफलता को दर्शाता है)

मल्टीकास्ट पता (Multicast)

224.0.0.0/4 (224.0.0.0 - 239.255.255.255)

एक से अनेक संचार के लिए उपयोग किया जाता है, जैसे वीडियो स्ट्रीमिंग, IPTV

आरक्षित पते

  • 0.0.0.0/8 - "इस नेटवर्क" को दर्शाता है
  • 255.255.255.255 - ब्रॉडकास्ट पता
  • 192.0.2.0/24 - दस्तावेज़ उदाहरण के लिए आरक्षित
  • 198.18.0.0/15 - बेंचमार्क परीक्षण के लिए आरक्षित

शीर्ष सार्वजनिक DNS सर्वर

Google DNS

8.8.8.8 / 8.8.4.4

2001:4860:4860::8888 / 2001:4860:4860::8844

दुनिया का सबसे तेज़ और सबसे स्थिर, DNSSEC समर्थित

Cloudflare DNS

1.1.1.1 / 1.0.0.1

2606:4700:4700::1111 / 2606:4700:4700::1001

गोपनीयता पर ध्यान, अत्यंत तेज़, लॉग नहीं रखता

Quad9 DNS

9.9.9.9 / 149.112.112.112

सुरक्षा सुरक्षा, दुर्भावनापूर्ण वेबसाइट्स को रोकना

OpenDNS

208.67.222.222 / 208.67.220.220

माता-पिता नियंत्रण, सामग्री फ़िल्टरिंग

एशियाई क्षेत्र DNS

  • अलीबाबा क्लाउड DNS (चीन): 223.5.5.5 / 223.6.6.6
  • DNSPod (चीन): 119.29.29.29
  • 114 DNS (चीन): 114.114.114.114

दिलचस्प IP तथ्य

💰 सबसे महंगा IP ब्लॉक

1.0.0.0/8 को APNIC ने अनुसंधान के लिए कई मिलियन डॉलर में खरीदा था। कुछ "शानदार" IP (जैसे 8.8.8.8, 1.1.1.1) अत्यंत मूल्यवान हैं, और Cloudflare ने 1.1.1.1 को टेलीकॉम कंपनियों से खरीदने के लिए बहुत बड़ी राशि खर्च की।

📍 क्यों एक ही IP अलग-अलग स्थान दिखाता है?

  • • अलग-अलग IP भौगोलिक डेटाबेस (हर API का डेटा स्रोत अलग होता है)
  • • गतिशील IP पते बदल जाते हैं (ऑपरेटर द्वारा पुनर्आवंटन)
  • • VPN/प्रॉक्सी सर्वर (प्रॉक्सी सर्वर का स्थान दिखाता है)
  • • CDN नोड (निकटतम CDN सर्वर का स्थान दिखाता है)
  • • मोबाइल नेटवर्क (बेस स्टेशन का स्थान अनुमानित हो सकता है)

📊 IPv6 अपनाने की दर

2024 तक, वैश्विक IPv6 अपनाने की दर लगभग 40% है, भारत, संयुक्त राज्य अमेरिका और जर्मनी अग्रणी हैं, चीन में लगभग 30% है। बेल्जियम विश्व का सबसे अधिक IPv6 अपनाने वाला देश है, जहां 60% से अधिक है।

🎂 पहला IP पता

1 जनवरी, 1983 को, इंटरनेट ने TCP/IP प्रोटोकॉल को अपनाया और पहला IP पता जन्मा। BBN Technologies के Leonard Kleinrock को पहला IP पता इस्तेमाल करने वाला माना जाता है।

🗑️ IP पतों का अनुचित आवंटन

प्रारंभिक इंटरनेट में IP आवंटन बहुत उदार था: MIT (एक विश्वविद्यालय) के पास 16 दशलक्ष IP थे (पूरा 18.0.0.0/8), और Apple के पास भी 16 दशलक्ष IP थे (17.0.0.0/8)। जबकि पूरे चीन को केवल लगभग 33 करोड़ IP आवंटित किए गए थे, जिन्हें लगभग 10 अरब इंटरनेट उपयोगकर्ताओं के लिए साझा करना था—यदि प्रति व्यक्ति 2 उपकरण मान लिया जाए, तो कम से कम 20 अरब IP की आवश्यकता होगी। इस असमान आवंटन के कारण चीन को IP साझा करने के लिए NAT तकनीक का व्यापक रूप से उपयोग करना पड़ा।

🚫 IP ब्लैकलिस्ट

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

🤯 IP स्थान निर्धारण के अजीब मामले

अमेरिका के कैंसास राज्य में एक साधारण परिवार को मैक्समाइंड कंपनी के IP डेटाबेस द्वारा डिफ़ॉल्ट स्थान (निर्देशांक 38°N 97°W, अमेरिकी भौगोलिक केंद्र) के रूप में सेट किया गया था, जिसके कारण लाखों अनिश्चित स्थान वाले IP इसी स्थान पर निर्देशित हो गए। इस परिवार को अचानक "पूरे अमेरिका का हैकर घर" बना दिया गया, जिससे उन्हें FBI, पुलिस, ऋणदाताओं, धोखेबाज़ी के पीड़ितों के असंख्य फोन और घर पर आने के लिए बुलाया गया, और कभी-कभी रात में घुसपैठ भी हुई। 2016 में, इस परिवार ने मैक्समाइंड के खिलाफ कानूनी कार्रवाई शुरू की और अंततः मुआवजा प्राप्त किया।

💸 IPv4 पते खरीदे और बेचे जा सकते हैं

IPv4 पतों के थक जाने के कारण, IP पते एक व्यापारिक वस्तु बन गए हैं। काले बाजार में इनकी कीमत 40 डॉलर प्रति पता तक पहुँच सकती है। 2011 में, माइक्रोसॉफ्ट ने दिवालिया हो चुकी Nortel कंपनी से 666,000 IPv4 पते 7.5 मिलियन डॉलर में खरीदे, जिसका औसत प्रति पता 11.25 डॉलर था। 2014 में, अमेज़ॉन, माइक्रोसॉफ्ट जैसी टेक दिग्गज कंपनियों ने IPv4 पतों की खरीद में भाग लिया, और कीमतें एक बार फिर बहुत बढ़ गईं।

🤦 IPv4 डिज़ाइनर्स की "गलती"

1981 में, IPv4 डिज़ाइनर्स ने सोचा कि "42 अरब पते, मानवता के लिए कभी खत्म नहीं होंगे"। उन्होंने पूरी तरह से यह नहीं सोचा था कि इंटरनेट आज के आकार तक कैसे विकसित हो जाएगा: दुनिया भर में 8 अरब लोग, प्रत्येक कम से कम 2-3 उपकरण, और IoT उपकरणों की विस्फोटक वृद्धि। अगर उन्होंने शुरू में 64 या 128-बिट डिज़ाइन किया होता, तो आज की पतों की कमी की समस्या नहीं होती।

🏠 127.0.0.1 का रहस्य

127.0.0.1 (localhost) केवल एक पता ही नहीं है, बल्कि पूरा 127.0.0.0/8 स्पेस (लगभग 1.6 करोड़ पते) लूपबैक पते हैं। आप 127.0.0.2, 127.1.2.3 आदि किसी भी पते को पिंग कर सकते हैं, और सभी आपके स्वयं के डिवाइस की ओर निर्देशित होंगे।

⏰ IPv4 पतों की थकान का समयरेखा

2 फरवरी 2011 को, IANA ने अपने अंतिम IPv4 पते ब्लॉक को आवंटित कर दिया। 15 अप्रैल 2011 को, एशिया-प्रशांत क्षेत्र (APNIC) थक गया। सितंबर 2012 में, यूरोप (RIPE NCC) थक गया। सितंबर 2015 में, उत्तरी अमेरिका (ARIN) थक गया।

📏 सबसे लंबा IP पता

IPv6 पता अधिकतम 39 वर्णों तक हो सकता है (8 समूह, प्रत्येक में 4 षष्ठाधारी अंक, और 7 कोलन)। लेकिन छोटे संस्करण के नियमों के द्वारा, इसे बहुत संक्षिप्त किया जा सकता है, जैसे ::1 जो IPv6 लूपबैक पता को दर्शाता है।

🚀 IP पता और इंटरनेट गति का कोई संबंध नहीं

बहुत से लोग यह गलत मानते हैं कि IP पता बदलने से इंटरनेट गति बढ़ जाती है, लेकिन वास्तव में IP पता केवल नेटवर्क में एक "पता" है; गति बैंडविड्थ, रूटिंग, सर्वर आदि के आधार पर निर्धारित होती है, IP पते से सीधा संबंध नहीं होता।

IPv6 की विशेषताएँ और उसके फायदे-नुकसान

फायदे

  • विशाल पता स्थान: 2¹²⁸ पते, लगभग असीमित
  • सरल रूटिंग: परतबद्ध पता संरचना, छोटा रूटिंग टेबल
  • स्वचालित कॉन्फ़िगरेशन: SLAAC का समर्थन, DHCP की आवश्यकता नहीं
  • बेहतर सुरक्षा: अंतर्निहित IPsec समर्थन
  • बेहतर QoS: फ्लो लेबल फील्ड, वास्तविक समय एप्लिकेशन के लिए अनुकूलित
  • NAT की आवश्यकता नहीं: प्रत्येक उपकरण के पास एक पब्लिक IP है
  • मोबिलिटी समर्थन: मोबाइल उपकरणों के लिए बेहतर समर्थन

नुकसान

  • संगतता समस्याएँ: उपकरण और नेटवर्क समर्थन की आवश्यकता
  • सीखने की लागत: पता प्रारूप जटिल और याद रखने में कठिन
  • संक्रमण लागत: उपकरण और सॉफ़्टवेयर को अपग्रेड करने की आवश्यकता
  • डुअल-स्टैक चलाना: संक्रमण अवधि के दौरान IPv4 और IPv6 दोनों का समर्थन करना आवश्यक

संबंधित IP जानकारी सर्विसेज

यह उपकरण निम्नलिखित API का उपयोग करता है, और हम अन्य उत्कृष्ट IP सर्विसेज की भी सिफारिश करते हैं:

IP-API.com

इस उपकरण द्वारा उपयोग किया जाता है ⭐

इस उपकरण द्वारा मुख्य रूप से उपयोग किया जाने वाला API। पूरी तरह मुफ्त (व्यावसायिक उपयोग के लिए नहीं), बैच क्वेरी समर्थित, JSON/XML/CSV फॉर्मेट प्रदान करता है। सीमा: 45 बार/मिनट।

IPapi.co

इस उपकरण द्वारा उपयोग किया जाता है ⭐

इस उपकरण के लिए बैकअप API। मुद्रा, भाषा, कनेक्शन प्रकार आदि अतिरिक्त जानकारी प्रदान करता है। फ्री संस्करण में मासिक 30,000 अनुरोध।

IPInfo.io

डेटा सटीक, API अनुकूल

विस्तृत IP जानकारी, ASN डेटा, स्थानीयकरण, कंपनी जानकारी आदि प्रदान करता है। फ्री प्लान (Free Plan) उपलब्ध है।

IPGeolocation.io

समृद्ध सुविधाएँ

IP स्थानीयकरण, समय क्षेत्र, मुद्रा, मौसम आदि जानकारी प्रदान करता है। फ्री संस्करण में मासिक 30,000 अनुरोध।

MaxMind GeoIP2

सबसे सटीक, उद्यम स्तरीय

IP स्थानीयकरण डेटाबेस का औद्योगिक मानक, उच्च सटीकता। ऑफलाइन डेटाबेस और ऑनलाइन API दोनों प्रदान करता है।

IPStack

सुरक्षा पता लगाना

IPv4 और IPv6 का समर्थन करता है, सुरक्षा मॉड्यूल (प्रॉक्सी, VPN, Tor का पता लगाना) प्रदान करता है। फ्री संस्करण में मासिक 100 अनुरोध।

IPData.co

खतरे की जानकारी

खतरे की जानकारी, ASN डेटा, कंपनी डेटा प्रदान करता है। फ्री संस्करण में दैनिक 1,500 अनुरोध।

Abstract API

आसान उपयोग

आसान उपयोग वाला IP स्थानीयकरण API। फ्री संस्करण में मासिक 1,000 अनुरोध, 1 अनुरोध/सेकंड की सीमा।

IPRegistry

पंजीकरण करें और 1 लाख अनुरोध पाएँ

IP स्थानीयकरण, कंपनी जानकारी, खतरा पता लगाना, यूजर प्रॉक्सी विश्लेषण प्रदान करता है। पंजीकरण करने पर 1,00,000 मुफ्त अनुरोध उपहार में मिलते हैं।

DB-IP

ओपन सोर्स डेटाबेस

मुफ्त IP भूगोलिक डेटाबेस डाउनलोड करने की सुविधा प्रदान करता है, साथ ही ऑनलाइन क्वेरी सेवा भी उपलब्ध है।

IPify

सार्वजनिक IP प्राप्त करें

केवल सार्वजनिक IP पता प्राप्त करने पर ध्यान केंद्रित करता है, सरल और तेज़, पूरी तरह मुफ्त।

प्रोग्रामिंग के माध्यम से IP पता कैसे प्राप्त करें?

नीचे विभिन्न प्रोग्रामिंग भाषाओं में विज़िटर का IP पता प्राप्त करने के उदाहरण कोड दिए गए हैं:

Java (Spring Boot)

import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;

@RestController
public class IpController {
    
    @GetMapping('/ip')
    public String getClientIp(HttpServletRequest request) {
        String ip = request.getHeader("CF-Connecting-IP");
        
        if (ip == null || ip.isEmpty()) {
            ip = request.getHeader("X-Forwarded-For");
            if (ip != null) {
                ip = ip.split(",")[0];
            }
        }
        
        if (ip == null || ip.isEmpty()) {
            ip = request.getHeader("X-Real-IP");
        }
        
        if (ip == null || ip.isEmpty()) {
            ip = request.getRemoteAddr();
        }
        
        return ip;
    }
}

PHP

function getClientIp() {
    $ipKeys = [
        'HTTP_CF_CONNECTING_IP',
        'HTTP_X_FORWARDED_FOR',
        'HTTP_X_REAL_IP',
        'REMOTE_ADDR'
    ];
    
    foreach ($ipKeys as $key) {
        if (!empty($_SERVER[$key])) {
            $ips = explode(',', $_SERVER[$key]);
            return trim($ips[0]);
        }
    }
    
    return $_SERVER['REMOTE_ADDR'] ?? 'Unknown';
}

$ip = getClientIp();
echo "Your IP: " . $ip;

JavaScript (Node.js)

const express = require('express');
const app = express();

app.get('/ip', (req, res) => {
    const ip = req.headers['cf-connecting-ip'] ||
                req.headers['x-forwarded-for']?.split(',')[0] || 
                req.headers['x-real-ip'] || 
                req.socket.remoteAddress;
    
    res.json({ ip: ip });
});

app.listen(3000);

Python (Flask)

from flask import Flask, request

app = Flask(__name__)

@app.route('/ip')
def get_ip():
    ip = request.headers.get('CF-Connecting-IP') or \
         request.headers.get('X-Forwarded-For', '').split(',')[0] or \
         request.headers.get('X-Real-IP') or \
         request.remote_addr
    
    return {'ip': ip}

if __name__ == '__main__':
    app.run()

Rust

use actix_web::{web, App, HttpRequest, HttpServer, Responder};

fn get_client_ip(req: &HttpRequest) -> String {
    if let Some(ip) = req.headers().get("CF-Connecting-IP") {
        return ip.to_str().unwrap_or("").to_string();
    }
    
    if let Some(forwarded) = req.headers().get("X-Forwarded-For") {
        if let Ok(forwarded_str) = forwarded.to_str() {
            if let Some(first_ip) = forwarded_str.split(',').next() {
                return first_ip.trim().to_string();
            }
        }
    }
    
    if let Some(ip) = req.headers().get("X-Real-IP") {
        return ip.to_str().unwrap_or("").to_string();
    }
    
    req.peer_addr()
        .map(|addr| addr.ip().to_string())
        .unwrap_or_else(|| "Unknown".to_string())
}

async fn ip_handler(req: HttpRequest) -> impl Responder {
    let ip = get_client_ip(&req);
    format!("Your IP: {}", ip)
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new().route("/ip", web::get().to(ip_handler))
    })
    .bind("127.0.0.1:8080")?
    .run()
    .await
}

Go

package main

import (
    "net/http"
    "strings"
)

func getClientIP(r *http.Request) string {
    if ip := r.Header.Get("CF-Connecting-IP"); ip != "" {
        return ip
    }
    
    if forwarded := r.Header.Get("X-Forwarded-For"); forwarded != "" {
        ips := strings.Split(forwarded, ",")
        return strings.TrimSpace(ips[0])
    }
    
    if ip := r.Header.Get("X-Real-IP"); ip != "" {
        return ip
    }
    
    return r.RemoteAddr
}

func handler(w http.ResponseWriter, r *http.Request) {
    ip := getClientIP(r)
    w.Write([]byte("Your IP: " + ip))
}

func main() {
    http.HandleFunc("/ip", handler)
    http.ListenAndServe(":8080", nil)
}

注意事项:

  • • ध्यान दें: यदि आपकी वेबसाइट CDN (जैसे Cloudflare) या रिवर्स प्रॉक्सी (जैसे Nginx) का उपयोग करती है, तो वास्तविक IP को विशिष्ट HTTP हेडर से प्राप्त करना होगा
  • • प्राथमिकता: CF-Connecting-IP > X-Forwarded-For > X-Real-IP > RemoteAddr
  • • X-Forwarded-For में कई IP (कॉमा से अलग) हो सकते हैं, पहला IP ग्राहक का वास्तविक IP होता है
  • • ब्राउज़र पर JavaScript सीधे IP पता प्राप्त नहीं कर सकता, इसके लिए तीसरे पक्ष की API की आवश्यकता होती है