Resolve Windows netbios names from Linux

Ping Windows by hostname

Ping Windows by hostname

Platforms:
any *nix distro

What You'll Need:
Samba

In a heterogeneous LAN it is often useful to resolve network addresses by a computer's name (ie. netbios name). This is especially true if the LAN does not have a DNS server so that host names can be used instead of IP addresses (which if dynamically assigned, could change often).

To enable Windows netbios name resolution from a Linux computer, make sure that Samba is installed (although the smb service does not need to be running). The Samba suite includes winbind, which enables Windows host names to be resolved. Then edit /etc/nsswitch.conf and change this line:

hosts:      files dns
to this:
hosts:      files dns wins
Then test by pinging the computer name of Windows machine on the LAN:
$ ping windowsbox
PING windowsbox (192.168.0.100) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_seq=1 ttl=128 time=0.117 ms
64 bytes from 192.168.0.100: icmp_seq=2 ttl=128 time=0.127 ms
64 bytes from 192.168.0.100: icmp_seq=3 ttl=128 time=0.127 ms
64 bytes from 192.168.0.100: icmp_seq=4 ttl=128 time=0.127 ms
64 bytes from 192.168.0.100: icmp_seq=5 ttl=128 time=0.128 ms
This setting really comes in handy when mounting a shared folder of a dynamically IP'ed Windows box from Linux. Instead of using the Windows' box IP address, just specify it's netbios name. Example entry in /etc/fstab:
//windowsbox/my_share/ /mnt/my_mount_point/ cifs rw,username=xxx,password=xxx,domain=xxx 0 0

Comments

  1. [...] http://www.zulius.com/how-to/resolve-windows-netbios-names-from-linux/ Like this:LikeBe the first to like this post.   [...]

  2. [...] name from a linux PC. There are several options like using the host file, DNS or by using WINS. http://www.zulius.com/how-to/resolve...es-from-linux/ http://www.samba.org/samba/docs/man/...-networks.html [...]

  3. In ubuntu you will need to install libnss-winbind and winbind packages for this to work.

  4. The Oilers Fan

    For a non-Ubuntu based Linux distro, check /lib or /lib64 to make sure libnss_wins.so is installed. If not, then search the Web for the RPM for your Linux distro and install the library. After, run ldconfig from the command line (just type ldconfig and press ENTER as root or su). Took me hours to find this little gap in all the tutorials on the Web. See http://users.atw.hu/linuxandwindows/linuxwinworld-chp-6-sect-1.html for more details.

  5. Konstantin

    Thx VERY MUCH Hazem Mohamed, after installation libnss-winbind, all works perfectly!

  6. Leandro Vasco

    As Hazem Mohamed said, in Debian too you will need to install libnss-winbind and winbind packages for this to work. Perfect!

  7. For a non-Ubuntu based Linux distro, check /lib or /lib64 to make sure libnss_wins.so is installed. If not, then search the Web for the RPM for your Linux distro and install the library. After, run ldconfig from the command line (just type ldconfig and press ENTER as root or su). Took me hours to find this little gap in all the tutorials on the Web. See http://www.zarcserekerulet.hu/

Leave a Comment