Soru Ana bilgisayar adını bir ip adresine çözümleme


Bir istemci / sunucu simülasyon uygulaması geliştirdim. İki farklı Windows XP makinesinde istemci ve sunucu kurdum. Her nasılsa, istemci sunucuya istekleri gönderemiyor.

Aşağıdaki seçenekleri denedim:

  1. IP adresi kullanarak istemciden başarıyla sunucu makine pingledi.

  2. IP adresi kullanarak sunucudan pinglenmiş istemci makine başarıyla.

  3. Her iki makineden kontrol edilen netstat komut satırı aracı. Sunucu içeride LISTENING mod ve istemci SYS_SENT modu. Ama göndermek için kullandığı yabancı adres, ip adresi değil ana bilgisayar adıdır.

  4. İstemciden ana bilgisayar adını kullanarak pinglenmiş sunucu makinesi başarısız.

  5. Sunucudan ana bilgisayar adını kullanarak pinglenmiş istemci makine.

İstemcinin sunucuya ana bilgisayar adını kullanarak bağlanmaya çalıştığı sırada sorun olduğunu hissediyorum.

Bir uygulamayı bir ana bilgisayar adı yerine bir ip adresi kullanması için nasıl zorlayacağımı lütfen bana bildirir misiniz? Ana bilgisayar adını bir ip adresine eşlemek için başka bir yol var mı?


32
2017-07-06 08:25


Menşei


Hangi kütüphaneyi kullanıyorsunuz? inet_addr sizin için yararlı olabilir mi? msdn.microsoft.com/en-us/library/ms738563(VS.85).aspx - Patrick


Cevaplar:


İstemci makinenize gidin ve şunları yazın:

nslookup server.company.com

sunucunuzun gerçek ana bilgisayar adını değiştirerek server.company.com, tabii ki.

Bu, istemcinizin hangi DNS sunucusunu kullandığını (varsa) ve sorunun adla ilgili olduğunu düşündüğü şeyi söylemelidir.

için Kuvvet Bir IP adresi kullanmak için bir uygulama, genellikle sadece bir ana bilgisayar adı yerine IP adresini kullanmak için yapılandırın. Ana bilgisayar adı sabit kodlanmışsa veya uygulama bir IP adresi tercihinde bir ana bilgisayar adını kullanmakta ısrar ederse (diğer yorumlarınızdan biri de belirttiği gibi), o zaman muhtemelen şansınız kalmaz.

Ancak, çoğu makinenin ana makine adlarını, örneğin /etc/resolv.conf ve /etc/hosts UNIX sistemlerinde ve yerel bir ana dosya Windows-y sistemlerinde.


41
2017-07-06 08:36



Hem istemcide hem de sunucuda nslookup'ı denedim. client: ----------------- nslookup client-pc Sunucu: ns.murphx.net Adres: 62.69.62.6 ** ns.murphx.net acf-pc'yi bulamıyor: Mevcut olmayan alan. nslookup server-pc yaptığımda aynı yanıt. Sunucu: --------- nslookup client-pc *** Varsayılan sunucular mevcut değil. Sunucu: bilinmeyen Adres: 127.0.0.1 nslookup server-pc *** Varsayılan sunucular mevcut değil. Sunucu: bilinmeyen Adres: 127.0.0.1 DNS isteği zaman aşımına uğradı. zaman aşımı 2 saniyeydi. *** Bilinmeyen zaman aşımına uğradı. Nslookup server-pc yaptığımda aynı tepki. - Mahesh
Sunucunuz kendini bir DNS sunucusu olarak kullanıyor gibi görünüyor (ve henüz bir DNS hizmetini görüntüleyerek çalışmıyor). O Mayıs ayı İstemci ayrıntılarını kendi yerel ana bilgisayar dosyasında bulundurun. Diğer taraftan, istemciniz ns.murphx.net'i bir DNS sunucusu olarak kullanacak şekilde yapılandırılmıştır ancak bu sunucu acf-pc hakkında bilgi sahibi değildir. DNS sunucularınızın nerede olması gerektiğini belirlemeniz, makinelerin bunları kullanacak şekilde yapılandırmanız ve tüm makinelerin bu DNS'de kayıtlı olduğundan emin olmanız gerekir. Alternatif olarak, test için, yerel DNS çevirilerinin nasıl kurulacağı ile ilgili bir bağlantı verdim, böylece bir DNS sunucusuna ihtiyaç duyulmaz. - paxdiablo


Nümerik adresi almak için bir C işlevi getaddrinfo () kullanabilirsin - hem ipv4 hem de ipv6. Örnek koduna bakın İşte


1
2017-10-04 05:47





Ana makine adını çözmek için tracert'i deneyin. IE 8.8.8.8 Ip adresiniz var, böylece kullanacaksınız; tracert 8.8.8.8


1
2018-03-18 04:38



Bu da tersine çalışır. IE, Facebook sunucusunun IP'sini almak için facebook.com'u kullanıyorsunuz. - IT wannabe


Bu ağ mimarisi hakkında daha fazla ayrıntı olmadan cevap vermek zordur. Araştırılacak bazı şeyler şunlardır:

  • İstemci ve / veya sunucunun NAT aygıtının, güvenlik duvarının veya benzerlerinin arkasında olması mümkün mü?
  • IP adreslerinden herhangi biri 192.168.x.y veya 10.x.y.z gibi bir "yerel" adresi içeriyor mu?
  • Ana bilgisayar adları nelerdir, "gerçek" DNS'dir: güçlü isimler veya daha yerel ve / veya Windows'a özgü isimler.
  • Müşteri sunucuya nasıl bakar? Ana bilgisayar adını tutan kod veya yapılandırma verilerinde bir yer olmalı, aramadan kaçınmak istiyorsanız bunun yerine IP adresini kullanmayı deneyin.

0
2017-07-06 08:30



Cevabın için teşekkürler. IP adresleri yereldir, 192.168.x.y ile başlar. DNS adları makineye daha yereldir. Uygulamaya IP adresi veriyorum, ancak bir şekilde sunucuya veri gönderirken ana bilgisayar adını kullanıyor (netstat dış adresi kullanılarak belirleniyor). - Mahesh


Windows XP, düzgün yapılandırılmadığı takdirde ağ trafiğine müdahale edebilecek Windows Güvenlik Duvarı'na sahiptir. Windows Güvenlik Duvarı uygulamasına Denetim Masası'ndan erişerek, yönetici ayrıcalıklarına sahipseniz Windows Güvenlik Duvarı'nı kapatabilirsiniz. Uygulamanız Windows Güvenlik Duvarı kapalıyken çalışıyorsa, sorun büyük olasılıkla güvenlik duvarının ayarlarından kaynaklanmaktadır.

UDP / IP kullanarak iletişim kuran çoklu PC'lerde çalışan bir uygulamamız var ve uygulamada yönetici ayrıcalıklarına sahip olmayan bir kullanıcı ile bir PC üzerinde çalışabilmemiz için denemeler yapıyoruz. Uygulamamızın birden fazla PC arasında iletişim kurması için, Windows Güvenlik Duvarı ayarlarını değiştirmek için bir yönetici hesabı kullanmak zorunda kaldık.

Bizim uygulamada, bir bilgisayar sunucu olarak tanımlanmıştır ve diğerleri bir sunucu / istemci grubunda istemcilerdir ve aynı alt ağda birkaç grup olabilir.

İlk değişiklik, iletişim için kullandığımız port için bir istisna oluşturmak amacıyla Windows Güvenlik Duvarı uygulamasının İstisnalar sekmesinin işlevselliğini kullanmaktı.

İstemciler, atanmış bir terminal numarası (örneğin SERVER100-1) tarafından takip edilen bir tire ile bir mnemonik önekden oluşan bilgisayar adını kullanarak atanmış sunucularını bulabilmeleri için ana bilgisayar adı araması kullanıyoruz. Bu, atanan istemcilerinin aynı alt ağda bir arada bulunmaları için çeşitli sunuculara izin verir. İstemci, atanan sunucu için bilgisayar adını oluşturmak için önekini kullanır ve atanan sunucunun IP adresini bulmak için ana bilgisayar adı aramasını kullanır.

Ne bulduğumuz, bilgisayar adının (Sistem Özellikleri iletişim kutusunun Bilgisayar Adı sekmesinden atanan) kullanılarak ana bilgisayar adı araması, sunucu PC'nin Windows Güvenlik Duvarı Dosya ve Yazıcı Paylaşımı Hizmeti bağlantı noktası etkinleştirilmedikçe çalışmaz.

Bu yüzden iki değişiklik yapmamız gerekiyordu: (1) iletişim için kullandığımız port için bir istisna oluşturduk ve (2) Ana Bilgisayar adı aramasına izin vermek için İstisnalar sekmesindeki Dosya ve Yazıcı Hizmetini etkinleştirdik.

** DÜZENLE **

Bunu da bulabilirsiniz Windows XP ağında yardımcı olan Microsoft Bilgi Bankası makalesi.

Ve bunu gör Windows'da NETBIOS ad çözümlemesi makalesi.


0
2017-12-03 01:17