Решение.local для IP-адреса и порта (MDN)

Я использую multicast-dns модуль узла, чтобы попытаться сделать эту работу.

Глядя вверх custom.local в браузере выдает мне консольное сообщение, которое я настроил, но я не могу видеть, как работает мой реальный сервер (который делает это в localhost:12345, где 12345 это динамическое число). Я хочу видеть мой локальный сервер при посещении custom.local, Это возможно?

Вот некоторый код:

mdns.on("query", query => {
  if (query.questions[0] && query.questions[0].name === "custom.local") {
    console.log(query);

    mdns.respond({
      answers: [
        {
          name: "custom.local",
          type: "SRV",
          data: {
            port: n.get("p"), // dynamic port
            weight: 0,
            priority: 10,
            target: ip // local IP
          }
        }, {
          name: "custom.local",
          type: "A",
          data: ip,
          ttl: 300
        }
      ]
    });
  }
});

РЕДАКТИРОВАТЬ: я могу подключиться к своему локальному серверу просто отлично, это не было проблемой.

1 ответ

Решение

Цитирование Cfreak:

Вы не можете поместить номера портов в DNS. DNS предназначен только для поиска IP по имени. Чтобы ваш браузер мог видеть его только по имени, вам нужна прокси-программа перед вашим сервисом или вы должны запустить сам сервис на порте 80. Номера портов действительно не должны быть динамическими. Вы должны указать это в настройках вашего сервиса.

Это отвечает на мой вопрос и предлагает следующие шаги. Спасибо!

ОБНОВЛЕНИЕ: понял, что я пытался сделать. Вот немного кода!


НАЙТИ РЕШЕНИЕ, WOOP WOOP!

Я использую этот модуль, но немного подправил исходный код (только потому, что у меня динамические порты, потому что мне так хочется).

/* jshint undef: true, unused: true, esversion: 6, node: true */



"use strict";



//
//  G E T
//  P A C K A G E S

import express from "express";
import http from "http";
import local from "./server/local";

const n = express();



n.get("/", (req, res) => {
  res.send("Welcome home");
});



//
//  L A U N C H

const server = http.createServer(n);

server.listen(0, () => {
  const port = server.address().port;
  local.add(port, "custom.local");
});

Надеюсь, это поможет и вам, будущий искатель интернета!:D Не позволяйте негативным людям на других сайтах SE вас обидеть. Виртуальный кулак

Другие вопросы по тегам