Pertanyaan Atasi nama host ke alamat ip


Saya mengembangkan aplikasi simulasi klien / server. Saya menyebarkan klien dan server pada dua mesin Windows XP yang berbeda. Entah bagaimana, klien tidak dapat mengirim permintaan ke server.

Saya mencoba opsi di bawah ini:

  1. Ping mesin server berhasil dari klien menggunakan alamat IP.

  2. Berhasil menjalankan mesin klien dari server menggunakan alamat IP.

  3. Memeriksa alat baris perintah netstat dari kedua mesin. Server dalam LISTENING mode dan klien SYS_SENT mode. Tetapi alamat asing yang digunakan untuk mengirim adalah nama host bukan alamat ip.

  4. Mesin server Ping tidak berhasil menggunakan nama host dari klien.

  5. Ping mesin klien berhasil menggunakan nama host dari server.

Saya merasa masalahnya adalah ketika klien mencoba untuk terhubung ke server menggunakan nama host.

Bisakah Anda memberi tahu saya cara memaksa aplikasi menggunakan alamat ip, bukan nama host? Apakah ada cara lain untuk memetakan nama host ke alamat ip?


32
2017-07-06 08:25


asal


Jawaban:


Pergi ke mesin klien Anda dan ketik:

nslookup server.company.com

mengganti nama host asli server Anda untuk server.company.com, tentu saja.

Itu harus memberi tahu Anda server DNS mana yang digunakan klien Anda (jika ada) dan apa yang dianggapnya masalah dengan nama itu.

Untuk memaksa aplikasi untuk menggunakan alamat IP, umumnya Anda hanya mengkonfigurasinya untuk menggunakan alamat IP bukan nama host. Jika nama host dikodekan keras, atau aplikasi bersikeras menggunakan nama host dalam preferensi ke alamat IP (sebagai salah satu dari komentar Anda yang lain tampaknya menunjukkan), maka Anda mungkin kurang beruntung di sana.

Namun, Anda dapat mengubah cara sebagian besar mesin menyelesaikan nama host, misalnya dengan /etc/resolv.conf dan /etc/hosts pada sistem UNIXy dan file host lokal pada sistem Windows-y.


41
2017-07-06 08:36



Anda bisa menggunakan fungsi getaddrinfo C () untuk mendapatkan alamat numerik - baik ipv4 dan ipv6. Lihat kode contoh sini


1
2017-10-04 05:47



Coba tracert untuk menyelesaikan nama host. IE Anda memiliki alamat IP 8.8.8.8 sehingga Anda akan menggunakan; tracert 8.8.8.8


1
2018-03-18 04:38



Ini sulit untuk dijawab tanpa lebih detail tentang arsitektur jaringan. Beberapa hal untuk diselidiki adalah:

  • Apakah mungkin klien dan / atau server berada di belakang perangkat NAT, firewall, atau yang serupa?
  • Apakah ada alamat IP yang melibatkan alamat "lokal", seperti 192.168.x.y atau 10.x.y.z?
  • Apa nama host, apakah mereka "nyata" DNS: nama dapat atau sesuatu yang lebih lokal dan / atau khusus Windows?
  • Bagaimana klien mencari server? Harus ada tempat di kode atau data konfigurasi yang menyimpan nama host, coba gunakan IP di sana sebagai gantinya jika Anda ingin menghindari pencarian.

0
2017-07-06 08:30



Windows XP memiliki Windows Firewall yang dapat mengganggu lalu lintas jaringan jika tidak dikonfigurasikan dengan benar. Anda dapat mematikan Windows Firewall, jika Anda memiliki hak istimewa administrator, dengan mengakses applet Windows Firewall melalui Control Panel. Jika aplikasi Anda bekerja dengan Windows Firewall dimatikan, maka masalahnya mungkin karena pengaturan firewall.

Kami memiliki aplikasi yang berjalan di beberapa PC berkomunikasi menggunakan UDP / IP dan kami telah melakukan eksperimen sehingga aplikasi dapat berjalan di PC dengan pengguna yang tidak memiliki hak administrator. Agar aplikasi kami dapat berkomunikasi di antara banyak PC, kami harus menggunakan akun administrator untuk mengubah pengaturan Windows Firewall.

Dalam aplikasi kami, satu PC ditetapkan sebagai server dan yang lainnya adalah klien dalam grup server / klien dan mungkin ada beberapa grup di subnet yang sama.

Perubahan pertama adalah menggunakan fungsionalitas tab Pengecualian pada applet Windows Firewall untuk membuat pengecualian untuk port yang kita gunakan untuk komunikasi.

Kami menggunakan pencarian nama host sehingga klien dapat menemukan server yang ditugaskan dengan menggunakan nama komputer yang terdiri dari awalan mnemonik dengan tanda hubung diikuti oleh nomor terminal yang ditetapkan (misalnya SERVER100-1). Ini memungkinkan beberapa server dengan klien yang ditugaskan untuk hidup berdampingan di subnet yang sama. Klien menggunakan awalannya untuk menghasilkan nama komputer untuk server yang ditetapkan dan kemudian menggunakan pencarian nama host untuk menemukan alamat IP dari server yang ditetapkan.

Apa yang kami temukan adalah bahwa pencarian nama host menggunakan nama komputer (yang diberikan melalui tab Nama Komputer pada dialog System Properties) tidak akan berfungsi kecuali Firewall Windows PC server memiliki port Layanan File dan Printer Sharing yang diaktifkan.

Jadi kami harus membuat dua perubahan: (1) menyiapkan pengecualian untuk port yang kami gunakan untuk komunikasi dan (2) mengaktifkan Layanan File dan Printer di tab Pengecualian untuk memungkinkan pencarian nama host.

** EDIT **

Anda mungkin juga menemukan ini Artikel Pangkalan Pengetahuan Microsoft bermanfaat di jaringan Windows XP.

Dan lihat ini artikel tentang resolusi nama NETBIOS di Windows.


0
2017-12-03 01:17