标签: mdns

如何使用 Ruby 的 net-mdns 广播主机名?

一般来说,我对 net-mdns 和 mDNS 很陌生,所以我现在对该协议的工作原理只有一个基本的了解,我希望这个问题是不言自明的。

到目前为止,我已经看到了一些如何使用 net-mdns 宣传服务的示例,但我真正需要的是广播主机名别名,以便我的计算机可以解析为“mybox.local”和“othername.local” (如果“othername.local”是一个实际的 DNS 别名,那就太好了,但这并不重要,A 记录就可以了)。

我发现这个脚本基本上可以满足我的要求,但是

  • 我对 Python 的掌握不如对 Ruby 的熟练;-)
  • 它依赖于 avahi 并且只能在 Linux 或 BSD 上运行,而可移植到其他平台将是一个巨大的优势
  • 用 Ruby 来做这件事意味着可以轻松地将其插入 Rails 应用程序中,而我碰巧对 Rails 非常熟悉。;-)

我似乎在文档中找不到任何关于广播主机名的提及:我临时做了一点,阅读了一些源代码,但到目前为止还没有成功。

任何帮助将不胜感激,谢谢。

ruby mdns broadcast hostname

5
推荐指数
0
解决办法
618
查看次数

在Ruby中,如何反转dns查找zeroconf/bonjour计算机的主机名?

也不

Resolv.getname( "fred.local" ) 
Resolv.getaddress( "10.0.1.18" )
Run Code Online (Sandbox Code Playgroud)

也不

Socket.gethostbyaddr([10,0,1,18].pack("CCCC")) 
Run Code Online (Sandbox Code Playgroud)

似乎认识到本地子网上使用zeroconf/bonjour的主机.我需要在给定其IP地址的本地子网上找到zeroconf计算机的主机名.

ruby mdns

5
推荐指数
1
解决办法
536
查看次数

avahi 守护进程可用于在 BNEP(BT-PAN) 网络接口中发布和发现服务

avahi 守护进程可用于在 BNEP 网络接口中发布和发现服务吗?如果两个设备通过蓝牙连接,那么两个设备都将拥有 IP,因此我们可以在它们之间进行 TCP-IP 通信。实际上我想在跨平台(Android 和 Linux)中进行 mDNS 服务发现。在Android中,我可以使用Android的NSDManager在BNEP(BT-PAN)网络接口中发布和发现服务,并且它也适用于Android跨设备通信。所以android到android设备的通信不是问题。

现在我试图在Linux中发现在Android中发布的服务并从Linux中发现(反之亦然),但我无法做到这一点。[我已将我的 Linux 设备与 Android 绑定起来]

在linux中,在avahi配置(/etc/avahi/avahi-daemon.conf)中,我设置为allow-interfaces=bnep0

在从 Linux 发现服务时,我找不到已发布的服务。或者我也找不到Android中在Linux中发布的服务。

以前有人遇到过此类问题吗?
我正在尝试发现 bnep 中发布的服务

linux mdns bluetooth jmdns avahi

5
推荐指数
0
解决办法
716
查看次数

如何在 C# 中获取完整的主机名?

我尝试过遵循它,只给我一个名字。我想要全名。前任。我的系统全名是“ sys101.home.homeconsultancy.lan ”。以下代码只给出“ sys101 ”。我想要完整的地址“ sys101.home.homeconsultancy.lan ”。

这是我的代码:

string hostName = System.Net.Dns.GetHostName();
Run Code Online (Sandbox Code Playgroud)

如何获得完整的系统名称?

.net c# dns mdns environment-variables

5
推荐指数
1
解决办法
5625
查看次数

如何在我的 android 应用程序中访问 raspberry.local?

我在我的覆盆子PI运行的Django,和我使用的avahi守护进程来访问我的RPI raspberrypi.local。在我的 Django 上,我为我的 android 应用程序制作了 API,以便通过 HTTP 协议访问。例如,我的 http 请求网址之一是: http://raspberrypi.local/api/getUserNames/

问题是 android 没有在我的本地 wifi 网络上访问这个 url,我已经确认我的 android 设备和 rpi 都连接到同一个 wifi 网络,但仍然http://raspberrypi.local无法在 android 上工作。虽然它在我的 PC 和 MAC 上运行良好。

我试图找到解决方案并经历了许多关于 bonjour、mDNS、jmDNS、android-multicast 的问答。但所有这些要么太混乱而无法实施,要么不起作用。请帮助我,我被卡住了一段时间。

注意: 在我的 Rpi 上,avahi-daemon 将自己广播为“_workstation._tcp”。服务类型

——

我的解决方案:

http://www.dodgycoder.net/2015/02/setting-up-bonjourzeroconfmdnsnsd.html

Android NSD(网络服务发现)解决了我的问题。我只使用了 Discovery Listener 和 Resolve Listener 来解决我的目的。我专门用来SERVICE_TYPE = "_workstation._tcp.";avahi-daemon搜索raspberrypi.local

dns android mdns jmdns raspberry-pi2

5
推荐指数
1
解决办法
8675
查看次数

无法浏览esp8266中创建的mdns服务

到目前为止我所做的是

我在 nodemcu 中创建了 mdns 服务

    ... // code used to create the mdns service 

    if (mdns.begin("esp", WiFi.localIP()))
        Serial.println("MDNS responder started");

    server.begin();
    Serial.println("HTTP REST Server Started");

    MDNS.addService("http", "tcp", 80); 

   ...
Run Code Online (Sandbox Code Playgroud)

然后我在我的 windows 中安装了 Bonjour。之后,我可以 ping esp.local从我的 windows power shell 中访问,也可以使用 mdns 名称从浏览器与物联网设备进行通信 esp.local

我现在正在努力解决的问题。

我在搜索 mdns 服务时无法发现此设备。我用dns-sdwindows powershell 浏览我的服务,但它没有发现这个设备。

命令是dns-sd.exe -B <Type> <Domain> (Browse for services instances) 所以我试过

dns-sd -B _http._tcp local. //have doubt about this one .

它只是显示

Browsing for _http._tcp.local.

如果有人能帮我解决这个问题,那就太好了。谢谢。

mdns arduino dns-sd nodemcu esp8266

5
推荐指数
2
解决办法
5790
查看次数

dns-sd:如何手动注册远程服务

我在另一个物理网络上的另一个远程系统上有一个服务,它的多播包没有到我的本地系统,因此我看不到它的DNS-SD发布服务.

我有办法在本地机器上手动注册它,以便只显示DNS-SD发现服务的应用程序显示它吗?

mdns bonjour avahi dns-sd

4
推荐指数
1
解决办法
8884
查看次数

ESP8266 Arduino主机名(MDNS)

我的ESP8266主机名有问题。我正在使用MDNSResponder,并且可以使用mydevice.local成功访问我的设备

但是,我的WiFi路由器(Netgear WGR614)将该设备列为ESP_FEA38A。当我在Mac上使用“ Angry IP扫描仪”时,没有列出主机名。ip扫描仪和WiFi路由器都可以识别多个树莓和其他设备,例如机场快线。

有人知道使用了哪些其他主机命名机制,如何将ESP8266设备列为主机名吗?

mdns esp8266

4
推荐指数
1
解决办法
1万
查看次数

android resolve .local(mDNS)

我正在寻找一种解决方案来解决Android 4.0.4的.local主机名(由于API级别15,没有NSD).在设备上,我没有任何服务要发现,只有主机名.你能举一个如何解决的例子吗?我集成了jmDNS,但不知道如何使用主机名解析.

赢得-CMD:

ping kcmeasurement.local

Pinging kcmeasurement.local [10.202.0.29] with 32 bytes of data:
Reply from 10.202.0.29: bytes=32 time<1ms TTL=64
...
Run Code Online (Sandbox Code Playgroud)

谢谢,

丹尼尔

android network-programming mdns jmdns

3
推荐指数
1
解决办法
1万
查看次数

使用 NWBrowser for Network.framework 时,为什么 TXT 记录设置为 nil?

我正在尝试使用 Swift 中的 Network.framework 为我的 iOS 应用程序获取在本地网络上运行的 Bonjour 服务列表。为了发现与我的应用程序运行时使用相同协议版本的设备,我需要能够查看网络上运行的 Bonjour 服务的 TXT 记录。但是,当我尝试打印时result.endpoint.txtRecord总是返回零。

下面是我的代码示例(经过简化以重点关注此示例的关键部分):

let parameters = NWParameters.tcp
parameters.includePeerToPeer = true
parameters.allowLocalEndpointReuse = true

let browser = NWBrowser(for: .bonjour(type: "_tictactoe._tcp", domain: nil), using: parameters)

browser.browseResultsChangedHandler = { results, changes in
    for result in results {
        print("Browser result. txtRecords: \(result.endpoint.txtRecord)")
    }
}
Run Code Online (Sandbox Code Playgroud)

mdns bonjour ios swift network-framework

3
推荐指数
1
解决办法
218
查看次数