Localhost ve ip adresi arasındaki fark


16

Python'daki bir soketi localhost'a bağlarsanız, 8200'e http: // localhost: 8200 / aracılığıyla erişilebilir . ancak http: // xxxx: 8200 /

Python'da bir soketi xxxx, 8200, machinename, 8200'e bağlarsanız buna http: // xxxx: 8200 / ve http: // machinename: 8200 / adresinden erişilebilir , ancak http: // localhost: 8200 /

Localhost'un 'bu makine' anlamına geldiğini ve onu kullanmanın makinenin ip adresine 'geri döneceğini' düşündüm, ancak farklı ips gibi görünüyor.

127.0.0.1 her zaman makinelerin ip adresinden farklı bir IP adresi midir?

Güncelleme:

Gerçek sayıların farklı olduğunu anlıyorum, ancak geridöngü ne yapıyor?

Örneğin wikepedia , ' http://127.0.0.1/ veya http: // localhost / URL'lerine bir web tarayıcıyı işaret etmenin o bilgisayarın kendi web sitesine erişeceğini' söylüyor

ancak bu web sitesine xxxx'te de erişilebilecek ve muhtemelen xxxx'te tek bir soketle kurulacak. Öyleyse her iki referans da nasıl çalışır?

Sonuç:

Sonunda 127.0.0.1 ve xxxx'in böyle çalıştığını anlıyorum

--127.0.0.1 ==\
               >- Computer
--x.x.x.x   ==/

ve yok

--127.0.0.1 ==\
--------------- x.x.x.x >- Computer

veya

--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer

Yardım için hepinize teşekkürler


1
"127.0.0.1 her zaman makinenin IP adresinden farklı bir IP adresi" yazdınız. Noktalar arasındaki sayılar farklı, yani farklı bir IP adresi. Ne garip bir soru soruyorsun. Makinenin ip adresine göre, 127.0.0.1 dışında bir şey kastediyorsanız, evet, farklı bir IP adresi olacaktır. Ve makinenizin IP adresi olarak adlandırdığınız şey 192.168.0.1 (veya başka bir standart yerel aralık) ise, bunu söylemekten korkmanıza gerek yoktur. Xxxx yerine yazabilirsiniz. 192 adres internette zaten mevcut olmayacak.
barlop

Her ikisi için referanslar, web sunucusunun yapılandırılması nedeniyle çalışır. Sunucuya tüm adreslere bağlanmasını veya yalnızca belirli adresleri dinlemesini söyleyebilirsiniz. Geri döngü ve gerçek IP farklı adresler olduğundan, yapılandırma hangi IP'nin dinleneceğini belirler. Localhost yalnızca 127.0.0.1 için bir ana bilgisayar girdisi olduğundan, yalnızca web sunucusu 127.0.0.1'e bağlı olduğunda çalışır.
peelman

Yanıtlar:


17

Soruna cevap vermek için.

127.0.0.1 sadece makine ip adresinden farklı bir ip adresi değil, aynı zamanda farklı bir arayüzdür. 127.0.0.1 yerel ağda görülmemelidir. Geridöngü adaptörü için özel bir dahili IP adresidir.

xxxx, ethernet kartınız olacaktır.

bu arada 'localhost' sadece hosts dosyasında 127.0.0.1'e işaret eden bir girdidir

Bir soketi 127.0.0.1:8200'e bağlarsanız, yalnızca yerel olarak çalışan istemciler sokete erişebilir ve yalnızca http://127.0.0.1:8200 veya http: // localhost: 8200 (veya bir dns veya hosts dosya girişi ile) 127.0.0.1).

Xxxx: 8200'e bağlı bir soket yalnızca http: // xxxx: 8200 veya buna işaret eden bir dns veya hosts dosya girişi aracılığıyla kullanılabilir .

Bir soketi 127.0.0.1'e bağlamak, otomatik olarak ethernet arayüzünde de kullanılmaz.

Bu yüzden xxxx: 8200'e bağlanamıyorsunuz

8200 numaralı bağlantı noktasını kullanılabilir tüm arabirimlere (0.0.0.0) bağlayabilirsiniz, sonra çalışmalıdır.


Peki 'geri döngü' biti ne yapıyor? Neye geri dönüyor? Makine ip adresine başvurmanın bir yolu olduğunu düşündüm, ne olursa olsun 'ie 127.0.0.1 => xxxx
David

1
Geri döngü arabirimi sanal bir arabirimdir. Programların aynı makinede birbirleriyle konuşmasına izin vermek için sıklıkla kullanılır. Makinenin IP adresine başvurmanın bir yolu değildir. 127.0.0.1 Geri döngü sanal bağdaştırıcısının IP adresidir.
Matt H

1
Geri döngü bağdaştırıcısı ile ilgili diğer bir şey, sanal olduğu için aslında ağ kartına herhangi bir paket geçirmemesi.
Matt H

1
kelimenin tam anlamıyla bu kavramı anlamayan 4 saat boşa ... görünüşe göre bazı web sunucuları otomatik olarak hem xxxx hem de 127.0.0.1 bağlanır hangi karışıklık ortaya. Harika soru cevap çocuklar. Thx =)
jrhee17

3

Örneğin wikepedia, ' http://127.0.0.1/ veya http: // localhost / URL'lerine bir web tarayıcıyı işaret etmenin o bilgisayarın kendi web sitesine erişeceğini' söylüyor

Biraz yanlış. Bu olabilir bunu. Aynı şekilde iyi bir web sitesi getirmeyebilir ve xxxx adresinizi kullandığınızda aldığınızdan farklı bir dahili web sitesi görüntülemek bile mümkündür.

127.0.0.1 kendi makinenizi gösterir, ancak bu makinenize ulaştığında aynı şekilde davranacağı anlamına gelmez.

Teknik olmayan bir benzetme istiyorsanız, onları evinize farklı kapılar olarak düşünebilirsiniz.

İkisi de aynı evi işaret ediyor ama aynı şey değiller. Her kapının sizi aynı odaya götürmesi mümkündür veya sizi farklı bir odaya götürebilirler. Bir kapıyı kilitlemek, diğerini kilitlemek de mümkündür.

Bir web sitesini yapılandırdığınızda, hangi adreslerin bağlanacağını belirtirsiniz ve genellikle yanıtın tamamı adreslerdir. (Bu, tüm kapıların sizi bir odaya götürmesine eşdeğerdir)

Web sitesini yalnızca bir adrese bağlanacak şekilde de belirleyebilirsiniz. (Bu, biri hariç tüm kapıları kilitlemeye eşdeğerdir.)

İki (veya daha fazla) web siteniz varsa, bunları ayrı adreslere bağlayabilirsiniz. (Bu, her kapının ayrı odalara girmesine eşdeğerdir).

Her iki başvurunun nasıl çalıştığına bir örnek olarak, Windows 7 bilgisayarımda IIS yüklü, IIS Yöneticisi'ne girip Varsayılan Web Sitesini sağ tıklattığımda bana bir 'Bağlamaları Düzenle' menü seçeneği sunuyor. Bir ciltleme listesi oluşturan seçimi. Sadece bir tane var, ancak IP Adresi için * IIS'nin tüm ip adreslerimi dinlediği anlamına geliyor.


Harika benzetme! Çok teşekkür ederim ! Sadece denedim. 127.0.0.1:5000Bir web sitesine başarıyla bağlandım ve 192.168.1.104:5000başka bir siteye bağlandım . Anahtar, address:portevde (bilgisayar) farklı bir oda (hizmet) anlamına gelir.
Rick

1

Sistemdeki her IP adresi bağımsızdır ve OS'ye soketi tüm arabirimlere bağlayacağını gösteren özel adres 0.0.0.0 hariç olmak üzere ayrı ayrı soketlerle bağlanabilir.


1
Ancak 127.0.0.1, geri döngü arabirimi için en yaygın seçenek olarak özel bir adrestir. Bu adres neye dönüşüyor?
David

Bu onu "özel" yapmaz, sadece "geri döngü arayüzünde bir adres" yapar ("her adres kendi yolunda özeldir" demedikçe, oraya gitmeyelim). Adresi değil, döngüyü yapan arabirimdir.
Ignacio Vazquez-Abrams
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.