कौन सा टर्मिनल कमांड सिर्फ आईपी एड्रेस पाने के लिए और कुछ नहीं?


118

मैं लिखी गई स्क्रिप्ट में एक पैरामीटर के रूप में सिर्फ आईपी एड्रेस (इनसेट) का उपयोग करने की कोशिश कर रहा हूं।

क्या यूनिक्स टर्मिनल में केवल आईपी पता प्राप्त करने का एक आसान तरीका है, बजाय देखने के ifconfig?


हां, या मशीन के बारे में कोई अन्य विशिष्ट पहचानकर्ता मुझे लगता है।
मेसन

1
आपको hostname -i पर एक अमान्य विकल्प मिलता है?
केन

4
होस्टनाम ifconfig जितना विश्वसनीय नहीं है
joel

2
joel सही है, विशेष रूप से आप जहां MAC OS और उसके बाद Ubuntu के बारे में बात कर रहे हैं
zackaryka

2
नीचे दिए गए उत्तरों के माध्यम से ब्राउज़ करते समय, ध्यान रखें कि आउटपुट की ip -o addressतुलना में काम करना बहुत आसान है ip address
jlh

जवाबों:


177

आप एक स्क्रिप्ट लिख सकते हैं जो केवल आईपी लौटाती है जैसे:

/sbin/ifconfig eth0 | grep 'inet addr' | cut -d: -f2 | awk '{print $1}'

मैक के लिए:

ifconfig | grep "inet " | grep -v 127.0.0.1 | cut -d\  -f2

या लिनक्स सिस्टम के लिए

hostname -i | awk '{print $3}' # Ubuntu 

hostname -i # Debian

4
hostname -iखान पर यह लौटा:::1 127.0.1.1 192.168.1.100
बुक ऑफ़ ज़ीउस

1
डेबियन पर मुझे सिर्फ एक आईपी मिला। तो उपयोग hostnameपोर्टेबल नहीं है।
टिमोफी स्टोलबोव

1
यह कहता है कि -i और -I दोनों गैरकानूनी विकल्प हैं
मेसन

3
संक्षेप में: पहला तरीका एडेप्टर पर निर्भर करता है, जो हमेशा एक जैसा नहीं होता है। मेरे लिए दूसरा, दो आईपी पते दिखाता है, और अंतिम दो मैक पर काम नहीं करते हैं।
मैट

4
ifconfig यहाँ पदावनत और अविश्वसनीय है, उदाहरण के लिए grep debian 9 (खिंचाव) पर विफल रहता है क्योंकि यह अब "inet addr: 172.17.0.4" आउटपुट नहीं करता है, यह केवल "inet 172.17.0.4" आउटपुट करता है। इसके बजाय "ip" का उपयोग करें जैसा कि stackoverflow.com/a/26694162/72717 में वर्णित है ।
जामशिड

61

यह आपको सभी IPv4 इंटरफेस देगा, जिसमें लूपबैक 127.0.0.1 शामिल है:

ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

यह केवल दिखाएगा eth0:

ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

और इस तरह आप IPv6 पते प्राप्त कर सकते हैं:

ip -6 addr | grep -oP '(?<=inet6\s)[\da-f:]+'

केवल eth0IPv6:

ip -6 addr show eth0 | grep -oP '(?<=inet6\s)[\da-f:]+'

grep -oPबिजीबॉक्स v1.24.1 पर विफल रहता है: अमान्य विकल्प - पी
प्रो बैकअप

1
ठेस के लिए हर docker conatiner के बारे में बस grep स्थापित नहीं है। इसलिए यद्यपि ये सभी अच्छे आदेश हैं, वे कंटेनरों पर उपयोगी नहीं होंगे :-(
एंडीजी

1
मेरे विशेष मामले के लिए सबसे अच्छा जवाब। आपको -Pपर्ल नियमित अभिव्यक्तियों के लिए स्विच की आवश्यकता है या अन्यथा हम लुकबाइक (?<=inet\s)टोकन का उपयोग नहीं कर सकते हैं । आप एक समान परिणाम प्राप्त करके चल सकते हैं grep -oe 'inet [0-9\.]\+'या grep -oe 'inet6 [0-9a-f:]\+'इस तरह से मैं पहले शब्द से छुटकारा नहीं पा सकता। SuSE man grepरिपोर्ट में कि -Pझंडा प्रयोगात्मक है।
जॉर्ज बेलन

यह सबसे अच्छा जवाब है। ifconfig को अब अधिकांश OS पर कई वर्षों तक हटा दिया जाता है।
पोज़्सीसर्किटबॉय

2
दूसरी कमांड का एक छोटा संस्करण:ip -4 a show eth0 | grep -Po 'inet \K[0-9.]*'
tukusejssirs

40

आम तौर पर, यह गारंटी नहीं दी जाती है कि एक सिस्टम में केवल एक आईपी पता होगा, उदाहरण के लिए, आपके पास एक ईथरनेट और वलान कनेक्शन दोनों हो सकते हैं, और यदि आपके पास एक सक्रिय वीपीएन कनेक्शन है, तो आपके पास एक और आईपी पता होगा।

लिनक्स

लिनक्स पर, hostname -Iवर्तमान आईपी पते (तों) को सूचीबद्ध करेगा। इस पर भरोसा करते हुए हमेशा केवल एक आईपी पते पर लौटना सबसे अधिक संभावना है कि कुछ परिदृश्यों के तहत उम्मीद के मुताबिक काम नहीं किया जाएगा (यानी एक वीपीएन लिंक ऊपर है), इसलिए एक अधिक विश्वसनीय तरीका परिणाम को सरणी में बदल देगा और फिर तत्वों पर लूप करेगा:

ips=($(hostname -I))

for ip in "${ips[@]}"
do
    echo $ip
done

OSX

OSX पर, यदि आप इंटरफ़ेस जानते हैं , तो आप उपयोग कर सकते हैं:

~$ ipconfig getifaddr en0
192.168.1.123

जो सिर्फ आईपी ​​पते को लौटाएगा ।

या आप प्रत्यय के साथ शुरू होने वाले संभावित इंटरफ़ेस नामों पर लूप कर सकते हैं, अर्थात en:

for NUMBER in $(seq 0 5); do
    ip=`ipconfig getifaddr en$NUMBER`
    if [ -n "$ip" ]; then
        myip="$ip"
        break
    fi
done

echo $myip

इसके अलावा, एक केबल और वाईफाई कनेक्शन दोनों स्थापित होने पर, जब एक मशीन में एक से अधिक ईथरनेट इंटरफेस होते हैं, या जब वीपीएन टनल मौजूद होते हैं, तो आईपी एड्रेस गैर-निर्धारक बन जाता है।

बाहरी आईपी प्राप्त करना

यदि आपको बाहरी आईपी की आवश्यकता है, तो आप एक टेक्स्ट-मोड सेवा को क्वेरी कर सकते हैं, उदाहरण के लिए curl https://ipecho.net/plainएक सादा पाठ बाहरी आईपी लौटाएगा ।

और बाहरी IP प्राप्त करने का एक और तेज़ तरीका एक ज्ञात DNS सर्वर को क्वेरी करना है:

dig @ns1-1.akamaitech.net ANY whoami.akamai.net +short

LAN IP- पता कैसे प्राप्त करें?
21

17
hostname -I  

यह कमांड आपको उबंटू में जैसा चाहे वैसा ही सटीक आईपी एड्रेस देगा।


पहले से मौजूद (और उच्च मतदान) उत्तरों की संख्या की तुलना में, मुझे नहीं लगता कि यह उत्तर किसी भी मूल्य को जोड़ देगा ...
मिशा

4
Centos hostname -I (अपरकेस i) पर भी
zzapper

1
इसने वास्तव में मेरी मदद की - विख्यात अपरकेस 'i' प्रमुख था
ChronoFish

2
वही, यह बिना किसी अतिरिक्त उपकरण के पूरी तरह से काम करता है और आउटपुट को साफ करने के लिए एक पंक्ति में पंद्रह बायनेरिज़ को कॉल करने की आवश्यकता नहीं है। धन्यवाद !
उलर

11

नवीनतम उबंटू संस्करणों पर ( 14.04 - 16.04 ), इस कमांड ने मेरे लिए चाल चली

hostname -I | awk '{print $1}'

1
मैनुअल पेज से: "[...] यह विकल्प सभी नेटवर्क इंटरफेस पर सभी कॉन्फ़िगर किए गए पतों की गणना करता है। [...] आउटपुट के क्रम के बारे में कोई धारणा नहीं बनाते हैं"। अंतिम वाक्य आपको बताता है कि print $1आपको सही परिणाम दे भी सकता है और नहीं भी।
0 0

7

यदि आपके पास सीमित वातावरण है, तो आप इस आदेश का उपयोग कर सकते हैं:

ip -4 addr show dev eth0 | grep inet | tr -s " " | cut -d" " -f3 | head -n 1

3
या यहां तक ​​कि:ip -o -4 addr show dev eth0 | cut -d' ' -f7 | cut -d'/' -f1
जोस अल्बान

हाँ आप सही है। लेकिन सावधान रहें, अगर eth0 में एक से अधिक IP एड्रेस हैं, तो यह उन सभी को दिखाता है।
ag

bash-4.4 # ip -4 Addr शो देव eth0 | grep inet | tr -s "" | कट -d "" -f3 | सिर -१ १ १ -२.१.0.०.३/१६ / १६ के साथ अच्छा नहीं है
एंडीजी

लूप में एक और जोड़ना ip -4 addr show eth0 | grep inet | awk '{print $2}' | cut -d'/' -f1:। V4 और v6 दोनों के लिए:ip addr show eth0 | grep inet | awk '{print $2}' | cut -d'/' -f1
सुमित मुरारी

यदि इंटरफ़ेस नाम ज्ञात नहीं है (या प्लेटफार्मों के बीच भिन्न है) लेकिन आप निजी आईपी ​​पते की खोज करते हैं, तो इसके बजाय ip -4 addr show eth0 | grep inetकरें:ip -4 addr show | grep 192
साइबरबार

6

Mac OS X पर केवल IP पता प्राप्त करने के लिए आप निम्न कमांड टाइप कर सकते हैं:

ipconfig getifaddr en0

4

कमांड ifconfigसही है और आपको ipलिनक्स पर कमांड का उपयोग करना चाहिए ।

इसके अलावा ip aआप आईपी के रूप में एक ही लाइन पर गुंजाइश दे देंगे तो यह उपयोग करने के लिए आसान है।

यह कमांड आपको अपना वैश्विक (बाहरी) आईपी दिखाएगा:

ip a | grep "scope global" | grep -Po '(?<=inet )[\d.]+'

सभी आईपीवी 4 (127.0.0.1 भी):

ip a | grep "scope" | grep -Po '(?<=inet )[\d.]+'

सभी आईपीवी 6 (भी :: 1):

ip a | grep "scope" | grep -Po '(?<=inet6 )[\da-z:]+'

4

हम केवल 2 कमांड (ifconfig + awk) का उपयोग कर सकते हैं ताकि हम केवल IP (v4) प्राप्त कर सकें:

लिनक्स पर, eth0इंटरफ़ेस से आईपी पता प्राप्त करने के लिए , निम्नलिखित कमांड चलाएँ:

/sbin/ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'

OSX पर, en0इंटरफ़ेस से आईपी एडड्रेस प्राप्त करने के लिए , निम्नलिखित कमांड चलाएँ:

/sbin/ifconfig en0 | awk '/inet /{print $2}'

हमारे सार्वजनिक / बाहरी आईपी को जानने के लिए, इस फ़ंक्शन को इसमें जोड़ें ~/.bashrc

whatismyip () {
    curl -s "http://api.duckduckgo.com/?q=ip&format=json" | jq '.Answer' | grep --color=auto -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"
}

फिर भागो, whatismyip


4

eth0बिना अन्य पाठ के केवल IP पता प्रिंट करने के लिए :

ifconfig eth0 | grep -Po '(?<=inet )[\d.]+'

अपने प्राथमिक इंटरफ़ेस का निर्धारण करने के लिए (क्योंकि यह "eth0" नहीं हो सकता है), उपयोग करें:

route | grep ^default | sed "s/.* //"

उपरोक्त दो पंक्तियों को इस तरह एक एकल कमांड में जोड़ा जा सकता है:

ifconfig `route | grep ^default | sed "s/.* //"` \
  | grep -Po '(?<=inet )[\d.]+'

3

मैं कुछ सरल चाहता था जो बैश उर्फ ​​के रूप में काम करता था। मैंने पाया कि hostname -Iमेरे लिए सबसे अच्छा काम करता है (hostname v3.15)। hostname -iकिसी कारण से लूपबैक आईपी लौटाता है, लेकिन hostname -Iमुझे wlan0 के लिए सही IP देता है, और बिना grep या awk के पाइप आउटपुट के बिना। एक कमी यह है कि यदि आप एक से अधिक हैं तो सभी आईपी ​​का hostname -Iउत्पादन करेंगे ।


2

यह एक मैक में चाल होगा:

ping $(ifconfig en0 | awk '$1 == "inet" {print $2}')

वह ping 192.168.1.2मेरी मशीन में हल हो गया ।

प्रो टिप : का $(...)मतलब है कि कोष्ठक के अंदर जो कुछ भी है उसे चलाएं और मान के रूप में वापस लौटें।


2

इसमें man hostnameऔर भी आसान तरीका है जो स्वचालित रूप से लूपबैक आईपी को छोड़कर आईपी पते को होस्ट करने के लिए असाइन किए गए सभी स्थान की सूची को अलग दिखाता है:

root@srv:~# hostname --all-ip-addresses
11.12.13.14 192.168.15.19 

root@srv:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
   inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
  link/void 
  inet 11.12.13.14/32 scope global venet0:0
  inet 192.168.15.19/32 scope global venet0:1

2

आप निम्न कमांड का भी उपयोग कर सकते हैं:

ip route | grep src

नोट: यह केवल तभी काम करेगा जब आपके पास इंटरनेट से कनेक्टिविटी हो।


2

कुछ जवाब नए प्रयोग कर रहे हैं ipआदेश (के लिए प्रतिस्थापन ifconfig) इसलिए यहाँ एक है कि का उपयोग करता है ip addr, grepऔर awkबस के साथ जुड़े IPv4 पता मुद्रित करने के लिए wlan0इंटरफ़ेस:

ip addr show wlan0|grep inet|grep -v inet6|awk '{print $2}'|awk '{split($0,a,"/"); print a[1]}'

हालांकि सबसे कॉम्पैक्ट या फैंसी समाधान नहीं है, यह (यकीनन) आसान है (नीचे स्पष्टीकरण देखें) और अन्य उद्देश्यों के लिए संशोधित करें, जैसे मैक पते के अंतिम 3 ओकटेट को इस तरह प्राप्त करना:

ip addr show wlan0|grep link/ether|awk '{print $2}'|awk '{split($0,mac,":"); print mac[4] mac[5] mac[6]}'

स्पष्टीकरण: ip addr show wlan0 नाम के नेटवर्क इंटरफ़ेस से जुड़ी जानकारी को आउटपुट करता है wlan0, जो इस तरह होना चाहिए:

4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether dc:a6:32:04:06:ab brd ff:ff:ff:ff:ff:ff
    inet 172.18.18.1/24 brd 172.18.18.255 scope global noprefixroute wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::d340:5e4b:78e0:90f/64 scope link 
       valid_lft forever preferred_lft forever

अगला grep inetउन पंक्तियों को फ़िल्टर करता है जिनमें "inet" (IPv4 और IPv6 कॉन्फ़िगरेशन) शामिल नहीं हैं और "inet6" grep -v inet6वाली शेष पंक्तियों को फ़िल्टर करता है, जिसके परिणामस्वरूप यह एकल पंक्ति होती है:

    inet 172.18.18.1/24 brd 172.18.18.255 scope global noprefixroute wlan0

अंत में, पहला awk"172.18.18.1/24" फ़ील्ड निकालें और दूसरा नेटवर्क मास्क शॉर्टहैंड को हटा देता है, केवल आईपीवी 4 पते को छोड़कर।

इसके अलावा, मुझे लगता है कि यह उल्लेखनीय है कि यदि आप स्क्रिप्टिंग कर रहे हैं तो इस जानकारी को प्राप्त करने के लिए अक्सर कई समृद्ध और / या अधिक मजबूत उपकरण होते हैं, जिन्हें आप इसके बजाय उपयोग करना चाहते हैं। उदाहरण के लिए, यदि Node.js का उपयोग कर रहे हैं ipaddr-linux, अगर रूबी का उपयोग कर रहे हैं linux-ip-parser, आदि।

Https://unix.stackexchange.com/questions/119269/how-to-get-ip-address-using-shell-script भी देखें



1

यहां मेरा संस्करण है, जिसमें आप प्राथमिकता के आधार पर इंटरफेस की एक सूची पारित कर सकते हैं:

getIpFromInterface()
{
    interface=$1
    ifconfig ${interface}  > /dev/null 2>&1 && ifconfig ${interface} | awk -F'inet ' '{ print $2 }' | awk '{ print $1 }' | grep .
}

getCurrentIpAddress(){
    IFLIST=(${@:-${IFLIST[@]}})
    for currentInterface in ${IFLIST[@]}
    do
        IP=$(getIpFromInterface  $currentInterface)
        [[ -z "$IP" ]] && continue
    echo ${IP/*:}
    return
    done
}

IFLIST=(tap0 en1 en0)
getCurrentIpAddress $@

इसलिए अगर मैं वीपीएन, वाईफाई और ईथरनेट से जुड़ा हुआ हूं, तो मेरा वीपीएन पता (इंटरफेस टैप0 पर) वापस आ जाएगा। स्क्रिप्ट लिनक्स और ऑक्स दोनों पर काम करती है, और यदि आप IFLIST को ओवरराइड करना चाहते हैं तो तर्क ले सकते हैं

ध्यान दें कि अगर आप IPV6 का उपयोग करना चाहते हैं, तो आपको 'inet' को 'inet6' से बदलना होगा।


1

मुझे हमेशा सबसे अप्रत्याशित समय पर इसकी आवश्यकता होती है और, असफल होने पर, एसओ पर इस तरह के धागे की खोज करना। इसलिए मैंने netstat के माध्यम से IPv4 पते प्राप्त करने के लिए एक सरल स्क्रिप्ट लिखी, जिसे कहा जाता है echoip- आप इसे यहां पा सकते हैं । नेटवर्क पते के लिए बैश इस तरह दिखता है, यह ipecho.net से आपके सार्वजनिक पते को भी प्राप्त करता है:

IPV4='\d+(\.\d+){3}'
INTERFACES=`netstat -i | grep -E "$IPV4" | cut -d ' ' -f 1`
INTERFACE_IPS=`netstat -i | grep -oE "$IPV4"`

for i in "${!INTERFACES[@]}"; do
  printf "%s:\t%s\n" "${INTERFACES[$i]}" "${INTERFACE_IPS[$i]}"
done

echoipस्क्रिप्ट इस तरह एक निर्गम पैदावार:

$ echoip
public: 26.106.59.169
en0:    10.1.10.2

1

इस एक लाइन स्क्रिप्ट का उपयोग करें: ifconfig | grep "inet " | grep -v 127.0.0.1|awk 'match($0, /([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/) {print substr($0,RSTART,RLENGTH)}' मैक और लिनक्स (ubuntu में परीक्षण) दोनों काम करता है।


अच्छा लगा कि यह दोनों पर काम करता है। इसके अलावा, आप इसे ifconfig en0या ifconfig eth1आदि के साथ कॉल कर सकते हैं यदि आप उस इंटरफ़ेस को जानते हैं जो आप चाहते हैं :)
jaygooby

1

मैं awkस्क्रिप्ट्स में उपयोग नहीं करना चाहता हूं और इस तरह से .. ipJSON में आउटपुट करने का विकल्प है।

यदि आप बाहर निकलते हैं $interfaceतो आपको सभी IP पते मिलते हैं:

ip -json addr show $interface | \
  jq -r '.[] | .addr_info[] | select(.family == "inet") | .local'

मुझे जिस तरह से ip कमांड की तरह json संरचनात्मक प्रारूप में कमांड का परिणाम पसंद है। यहाँ आईपी पते को ऊपर के समान पाने के लिए एक और तरीका है bash ip -j addr show eth0 | jp "[0].addr_info[?family== 'inet'].local | [0]"
जैक लियू शूरुई



0
#!/bin/sh
# Tested on Ubuntu 18.04 and Alpine Linux 
# List IPS of following network interfaces:
# virtual host interfaces
# PCI interfaces
# USB interfaces
# ACPI interfaces
# ETH interfaces
for NETWORK_INTERFACE in $(ls /sys/class/net -al | grep -iE "(/eth[0-9]+$|vif|pci|acpi|usb)" | sed -E "s@.* ([^ ]*) ->.*@\1@"); do 
    IPV4_ADDRESSES=$(ifconfig $NETWORK_INTERFACE | grep -iE '(inet addr[: ]+|inet[: ]+)' | sed -E "s@\s*(inet addr[: ]+|inet[: ]+)([^ ]*) .*@\2@")
    IPV6_ADDRESSES=$(ifconfig $NETWORK_INTERFACE | grep -iE '(inet6 addr[: ]+|inet6[: ]+)' | sed -E "s@\s*(inet6 addr[: ]+|inet6[: ]+)([^ ]*) .*@\2@")
    if [ -n "$IPV4_ADDRESSES" ] || [ -n "$IPV6_ADDRESSES" ]; then
        echo "NETWORK INTERFACE=$NETWORK_INTERFACE"
        for IPV4_ADDRESS in $IPV4_ADDRESSES; do 
            echo "IPV4=$IPV4_ADDRESS"
        done
        for IPV6_ADDRESS in $IPV6_ADDRESSES; do 
            echo "IPV6=$IPV6_ADDRESS"
        done
    fi
done

0

जब एक नैटेड होस्ट पर आपके बाहरी आईपी पते को देखते हैं, तो कुछ उत्तर ifconfig.meजैसे HTTP आधारित विधियों का उपयोग करने का सुझाव देते हैं :

$ curl ifconfig.me/ip

वर्षों से मैंने देखा है कि इनमें से कई साइटें आती हैं और जाती हैं, मुझे लगता है कि यह डीएनएस आधारित पद्धति अधिक मजबूत है:

$ dig +short myip.opendns.com @resolver1.opendns.com

मेरे पास यह आसान उपनाम है ~/.bashrc:

alias wip='dig +short myip.opendns.com @resolver1.opendns.com'

0

इन दो तरीकों ने मेरे लिए काम किया:

अपने इंटरफ़ेस eth0 का IP पता प्राप्त करने के लिए। नीचे दिए गए उदाहरण में eth0 को अपने इंटरफ़ेस नाम से बदलें। ifconfig eth0 | grep -w "inet" | tr -s " " | cut -f3 -d" "

Hostname का उपयोग करना: यह आपको inet यानी आपके Etho का IPAddress देगा। प्रयोग -I आपको उन सभी इंटरफेसों का inet value देगा जहां यह मूल्य मौजूद है।

hostname -i


-1
curl ifconfig.co 

यह आपके सिस्टम का केवल आईपी पता देता है।


1
इसके लिए एक कार्यशील इंटरनेट कनेक्शन की आवश्यकता होती है और यह आपके सार्वजनिक रूप से दिखाई देने वाले आईपी पते को वापस कर देगा, जो आप चाहते हैं या नहीं हो सकता है।
jlh

-2

मैं Hostname -Lएक स्क्रिप्ट में एक चर के रूप में उपयोग करने के लिए सिर्फ आईपी प्राप्त करने के लिए उपयोग करूंगा ।


शायद आप कहना चाह रहे थे hostname -iया hostname -I?
jlh

user@linux:~$ Hostname -L -bash: Hostname: command not found user@linux:~$ 1. पूंजी Hगलत है। ऐसा नहीं-L
सबरीना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.