Multicast DNS is used as part of Bonjour / Zeroconf. This allows system to identify themselves and the services that they provide on a local area network. Clients are then
[Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS) is used as part of Bonjour / Zeroconf. This allows system to identify themselves and the services that they provide on a local area network. Clients are then able to discover these systems and connect to them.
able to discover these systems and connect to them.
## mdns.register()
## mdns.register()
Register a hostname and start the mDns service. If the service is already running, then it
Register a hostname and start the mDNS service. If the service is already running, then it will be restarted with the new parameters.
will be restarted with the new parameters.
#### Syntax
#### Syntax
`mdns.register(hostname, servicename, port [, attributes])`
`mdns.register(hostname, servicename, port [, attributes])`
#### Parameters
#### Parameters
-`hostname` The hostname for this device. Alphanumeric characters are best.
-`hostname` The hostname for this device. Alphanumeric characters are best.
-`servicename` The servicename for this device. Alphanumeric characters are best. This will get prefixed with '_' and suffixed with ._tcp
-`servicename` The servicename for this device. Alphanumeric characters are best. This will get prefixed with `_` and suffixed with `._tcp`
-`port` The port number for the primary service.
-`port` The port number for the primary service.
-`attributes` A optional table of up to 10 attributes to be exposed. The keys must all be strings.
-`attributes` A optional table of up to 10 attributes to be exposed. The keys must all be strings.
#### Returns
#### Returns
Nothing.
`nil`
#### Errors
#### Errors
Various errors can be generated during argument validation. The nodemcu must have an IP address at the time of the call, otherwise an error is thrown.
Various errors can be generated during argument validation. The NodeMCU must have an IP address at the time of the call, otherwise an error is thrown.
Using dns-sd on OSX, you can see fishtank.local as providing the _http._tcp service. You can also browse directly to fishtank.local. In safari you can get all the mdns web pages as part of your bookmarks menu.
Using `dns-sd` on OSX, you can see `fishtank.local` as providing the `_http._tcp` service. You can also browse directly to `fishtank.local`. In Safari you can get all the mDNS web pages as part of your bookmarks menu.
## mdns.close()
## mdns.close()
Shut down the mDns service. This is not normally needed.
Shut down the mDNS service. This is not normally needed.