可能吗?如果是这样,我该怎么办?我需要它,因为我想测试本地网络上的 Web 服务器之间的通信,而我没有本地网络。我只有一台电脑。我在 Windows 7 上使用 apache。
Roman's questions
我正在尝试在我的 Windows 7 机器上使用“dns-sd”命令行工具。
我已经可以做点什么了。例如,我可以使用“dns-sd -R ...”注册服务。我还可以使用“dns-sd -B ...”浏览(查看)注册服务。我仍然想念的是如何取消注册服务。
在我输入“dns-sd -R ...”的那一刻,dns-sd 不会让我返回命令提示符。要返回命令提示符,我需要按 Ctrl-C。并且该服务保持注册状态,直到我按下 Ctrl-C。
我想要的是在后台运行“dns-sd -R ...”,然后我希望有可能从命令行取消注册服务。
我还不明白的另一件事是“查找服务”是什么意思。在我的图片中,注册服务、查看服务然后取消注册就足够了。但显然我需要查找服务。这是什么意思,为什么我需要这样做?
补充: 正如所要求的,我澄清一下。我指的是我在 Windows 7 中使用的“dns-sd”命令行工具。我认为这个命令是 Windows 的 Bonjour 软件的一部分(来自 Apple)。好吧,我在安装 Bonjour 之前没有检查我是否有这个命令,但我假设我没有它。所以,我的问题是关于这个命令。
我对术语有点迷茫。我想开始使用Bonjour。作为第一步,我试图找到一种简单的方法来使用它。而且我认为我可能可以从命令行调用 Bonjour 来注册和发现服务。
当我问其他人怎么做时,我被告知 mDNS(适用于 Mac 和 Linux,但不适用于 Windows)。人们还告诉我,我可以使用“dns-sd”(适用于 Windows)。有人告诉我“dns-sd”只是 mDNS 的别名。
但!后来我发现 DNS 服务发现和多播 DNS 是两个不同的东西(它们是兼容的,并且在一起使用时效果特别好,但它们不需要彼此)。
此外,在我看来,mDNS 和 DNS-SD 是 Bonjour 的三个主要组件中的两个。这样对吗?我可以在没有 Bonjour 的情况下使用它们吗?在我的 Windows 7 上,我安装了 Bonjour,并且能够在命令行中运行“dns-sd”。但我无法运行 mDNS。
所以,我现在有点困惑。任何人都可以,请,澄清一下情况吗?
我正在尝试开始使用 Bonjour。在这里,我找到了如何使用 Bonjour 注册服务的手册。那里写着以下内容:
Bonjour 中的网络服务架构包括一个易于使用的 机制,用于发布、发现和使用基于 IP 的服务。
那么让我们看看如何注册一个服务。一开始是这样写的:
要发布服务,应用程序或设备必须向多播 DNS 响应程序注册服务
但是怎么办?!?!首先我不知道什么是多播 DNS 响应者。其次,它没有写我该怎么做。我应该在哪里输入什么?我应该使用命令行吗?我应该使用一些编程语言吗?我到底应该输入什么...
有没有简单的方法开始使用 Bonjour?好吧,有人多次强调它应该是多么容易使用。但我无法开始使用它好几天。
那么,任何人都可以,请,帮助我吗?
我的意思是,为什么 IP 地址不够用?我们可以通过 IP 地址来识别设备。为什么我们要使用主机名?识别设备?
我知道 IP 地址是随机分配的(从某个范围内)。主机名呢?他们是如何分配的?
我只想有一个表,其中第一列是单调递增的唯一整数。例如,如果我有一个有 5 行的表,那么行的索引应该是 1、2、3、4、5。如果我添加一个新行,它将获得索引 6。
我总是对这些东西感到困惑,因为有很多相关的选项:“auto_increment”、“primary key”、“unique”、“index”。我应该使用什么?
首先,Bonjour 到底做了什么(请阅读我下面写的猜测)?
在这里,我发现 Bonjour 可以自动发现 IP 网络上的计算机、设备和服务。但我认为它不仅“发现 IP 网络上的设备”,它还通过将 IP 地址分配给运行 Bonjour 的设备来创建 IP 网络。我对吗?我仍然怀念本质。它是否以下列方式工作?首先,我以物理方式连接设备(例如笔记本电脑),以便它们可以相互通信。然后,假设在一些笔记本电脑上我运行 Bonjour,然后,这些笔记本电脑会自动为它们分配 IP 地址。因此,笔记本电脑(运行 Bonjour 的地方)构建了一个 IP 网络。它以这种方式工作吗?
或者可能是运行 Bonjour 的计算机不被视为一项服务,并且它不会仅仅因为 Bonjour 在这台计算机上运行而广播自己。我的意思是计算机上运行的应用程序需要使用 Bonjour 进行广播。因此,是应用程序自己广播(而不是计算机)并且它不是自动完成的(应用程序需要明确地广播自己)。这样对吗?
我的应用程序究竟如何广播自己?我可以使用命令行注册服务(以便所有使用 Bonjour 的应用程序都知道出现了新服务)吗?
此外,我想要一个使用 Bonjour 创建的 IP 网络的应用程序。为此,我的应用程序需要知道网络中存在哪些设备/服务。更详细地说,我的应用程序需要有一个服务列表。列表中的每个服务都应该有一个名称、运行它的 IP 地址和应用程序使用的端口。Bonjour 能否以某种方式提供此信息?如果是这样,它究竟是如何工作的。我的程序如何从 Bonjour 获取这些信息?我的程序可以读取一些由 Bonjour 创建并包含上述信息的文件吗?我可以在命令行中使用一些命令来检索这些信息吗?
我对从文件、环境变量或命令行中的命令访问有关服务的信息特别感兴趣。这些选项在我看来是最简单的!因为在这些情况下,我不需要使用任何其他库来通过特定编程语言与 Bonjour 进行通信。
PS如果我的问题不清楚,请提出问题。我将尝试以更清晰的方式提出我的问题。
PPS我使用的是 Windows 7。
补充:我打算用 PHP 编写我的应用程序。每台计算机都应该运行 Apache Web 服务器。我想使用 Bonjour 帮助计算机发现彼此(计算机在本地网络中工作)。
我可以在 Internet 上找到一些信息,但由于使用了技术术语,我很难理解这些信息。有人可以帮我解决这个问题。
我是否正确理解了我阅读的内容?
首先,链接本地地址总是IP地址吗?此外,链路本地地址是否总是在 169.254.1.0 到 169.254.1.0 的范围内?
其次,链路本地地址总是自己分配给设备的。更详细地说,设备选择一个 IP 地址(从指定范围内)并将该 IP 地址发送给网络中的其他设备。如果这个 IP 地址没有被其他设备占用,它将被考虑的设备占用。这是正确的吗?
我在命令行中运行它吗?我是否将其作为 GUI 应用程序运行?我认为它通过本地网络发现可用资源并为资源分配地址。接下来发生什么?此信息是否写入了其他应用程序可以读取的某个文件?我可以将 zeroconf 生成的地址放入浏览器的地址行并到达 Web 服务器(在 Web 服务器正在资源上运行的情况下)吗?
我将有几台笔记本电脑,对方将使用它们来构建本地网络。其中一些笔记本电脑将用作 Web 服务器,而另一些则用作客户端。我将无法控制网络(我不知道它将如何构建以及将哪些 IP 地址分配给笔记本电脑)。所以,我想知道“客户端”笔记本电脑的用户如何找到可用的网络服务器。网络中的计算机可以通过它们的名称来识别吗?我的意思是,IP 地址不会是固定的,但笔记本电脑的名称应该是固定的。我可以使用计算机名称来识别 Web 服务器吗?例如,在客户端,我打开浏览器,地址栏中的地址如下:http://nameofthe_computer。
我正在尝试安装 php5-sqlite3。在命令行中我输入:
sudo apt-get install php5-sqlite3
结果我得到:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package php5-sqlite3 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package php5-sqlite3 has no installation candidate
这里发生了什么,我该如何解决这个问题?
我正在尝试使用 PHP 中的 sqlite。我有以下简单的代码:
<?php
$db = new SQLiteDatabase("test2.sdb");
unset($db);
?>
作为这段代码的结果(我在命令行“php test2.php”中执行),我得到:
Fatal error: Class 'SQLiteDatabase' not found in /var/www/test2.php on line 3
有谁知道我怎样才能让 PHP 能够使用 sqlite?
PS 在这里我发现“从 PHP 5.0 开始的标准 Linux PHP 编译默认启用 SQLite 支持”。我有“PHP 版本 => 5.2.6-2ubuntu4.6”。因此,除非“--disable-sqlite”,否则应该启用 sqlite。在我的例子中输出“phpinfo();” 根本不包含“sqlite”。
我知道我可以通过以下简单的方式设置用户的权限:
grant all on [database name].[table name] to [user name]@[host name];
但是我怎样才能看到现有的特权?
我需要查看与授权中使用的数据相似的数据。换句话说,我想知道给定用户对给定主机的给定数据库的给定表具有给定的访问权限。
我怎么才能得到它?
我正在尝试使用 IIS7 网络服务器。我发现我无法在此目录中编辑(或创建)文件。原因是该目录具有只读权限。我可以更改此权限,但我担心它会破坏我网站的安全性。我的意思是,例如,如果这个目录有写权限,那么来自“外部”的人可以在那里放一些“狗屎”。或者我不应该担心这个?
我在 Windows 7 中启用了 IIS7。它工作正常。我可以从本地计算机以及连接到 Internet 的远程计算机上看到默认页面。
现在我想做点什么。我想更改我的 index.html。有人知道这个文件可以放在哪里吗?
我已经在 Windows 7 上安装了 Apache 服务器。当我尝试通过其 IP 地址访问服务器时,我在 Chrome 中得到:
禁止的
您无权访问此服务器上的 /。
在 IE 中我得到:
该网站拒绝显示该网页
HTTP 403 最可能的原因:
•该网站要求您登录。
我想强调的是,如果我输入任意 IP,我会收到另一条消息。所以,服务器正在工作它只是不想向我显示文件。
我已经检查了端口(我认为端口 80 已打开)。在我的“httpd.conf”文件中,我有“Listen 80”。
目前我认为问题出在文件和文件夹的权限上。谁能告诉我如何检查文件和文件夹的权限,如何更改它们(Linux 的 chmode 的 DOS 模拟),以及我需要设置哪些权限(这样外部的人可以看到我的文件但他们不能做某事坏的)。
预先感谢您的任何帮助。
我已经在我的 Windows 7 计算机上安装了 Apache 服务器。我可以通过在浏览器的地址行中键入http://localhost/来显示默认的 index.php 。
但是,我仍然无法通过键入我的计算机的 IP 地址来查看此页面(既不是本地的(来自同一台计算机)也不是全局的(来自连接到 Internet 的另一台计算机))。
有人告诉我我需要打开端口 80。我做到了(以此处描述的方式)但它没有解决问题。
首先,我想检查哪些端口已打开,哪些未打开。例如,我不确定我的端口 80 在我尝试打开之前是否已关闭。在我尝试打开它之后,我也不确定它是否被打开。
我尝试运行一个用 Python 编写的非常简单的 Web 服务器。为此,我使用了 81 端口并且它有效!而且我没有尝试打开81端口。所以,它默认是打开的。那么,如果默认开启81,为什么不开启80呢?或者它是?
附加信息:
1. 在我的 httpd.conf 文件中,我有“Listen 80”。
2.这个网站告诉我,我的电脑上的 80 端口被打开了。
3. 如果我尝试http://myip:80和http://myip:81 ,我会得到不同的响应。在最后一种情况下,浏览器(Chrome)告诉我链接已损坏。在第一种情况下,我得到:禁止您无权访问此服务器上的 / 。
4. IE 写“网站拒绝显示此网页”。