问题标签 [dhcp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 一个基本的 DHCP 客户端
我正在用 C 编写一个非常简单的 DHCP 客户端。我很难决定它应该使用 UDP 还是 TCP,它应该支持哪些基本命令。我认为它至少应该能够从服务器获取 DNS、SMTP、POP3 服务器信息。
我还需要知道什么?是否有可用的基本 DHCP C 实现可以提供帮助?
networking - DHCP : 无法接收来自服务器的回复
我正在开发 Ubuntu 9.04。我在 VMware 工作站上运行它。这是我的 C 代码:
我在一个终端上运行这个程序并在另一个终端上运行“dhclient”。我没有收到任何数据报。我究竟做错了什么?
network-programming - 为什么 DHCP 客户端侦听端口 68?
如果假设客户端不监听 68 端口,当 DHCP 服务器接收到请求时,它可以将其发送到它接收请求的地址(发送时客户端选择的临时端口),那么为什么协议指定客户端是监听 68 端口?
c - 实现 DHCP 客户端
在使用 C 的 unix 上,我的客户端正在以超级用户模式侦听端口 68。发送 DHCP 发现消息后,当我尝试接收时,它在 recvfrom 中阻塞,表示没有收到消息,或者系统有一个进程(DHCP 客户端)在同一端口 68 上侦听接收消息,这就是我的进程无法接收消息。问题是什么?
我已经设置了套接字选项 SO_REUSEADDR 和 SO_BROADCAST。我正在发送到端口 67。
dhcp - 如果 DHCP Release 中的任何参数错误,DHCP 客户端是否会收到 DHCP NAK?
我正在 Ubuntu 9.04 上使用 C 构建一个 dhcp 客户端。现在我向 dhcp 服务器发送一个 dhcp 版本,它没有按预期发送 ack。我想知道如果任何参数错误,它是否会发送任何 DHCP NAK。
还有一个问题。发送 DHCP 释放后,我的互联网仍在工作。此外,当我执行 ifconfig 时,它仍然显示 eth0 的 IP 地址。但是当我做 dhclient -r internet 不起作用并且 ifconfig 不显示 eth0 的 IP 地址时。
scripting - 在 Powershell 中,将两个表合并为一个的最佳方法是什么?
我对 Powershell 相当陌生,想知道是否有人知道完成以下示例问题的更好方法。
我有一组从 IP 地址到主机名的映射。这表示活动 DHCP 租约的列表:
我还有另一组从 MAC 地址到 IP 地址的映射。这表示 IP 保留列表:
为方便起见,我能够使用以下代码生成从 MAC 地址到 IP 地址和主机名的第三组映射。这个想法是$reservations
应该获得第三个字段“名称”,只要有匹配的“IP”字段,就会填充该字段:
所需的输出是这样的:
有没有更好的方法来做到这一点?
c# - 在 C# 中查询 DHCP 服务器
我需要通过在服务器本身上运行的程序或最好通过在其中一个 DHCP 客户端上运行的程序来获取 MAC 到存储在 DHCP 服务器上的 IP 的映射。
我了解netsh 实用程序可用于获取转储,但我并没有取得太大的成功。
有任何工作示例或提示吗?
我拥有 DHCP 服务器的管理员权限
编辑
我不想使用 arp 缓存,因为这需要我广播 ping(这在 Windows 上是不允许的)或 ping 子网的所有可能 IP 地址(这需要很多时间)。
我确定 DHCP 服务器存储 MAC 到 IP 的映射,我如何使用该信息将 MAC 映射到 IP 地址?
dhcp - 如何配置接入点和 dhcp 范围?
我有一个 Thomson ST585V6 路由器和 2 个 TRENDnet TEW-636APB 无线接入点。我有 3 台设备需要静态 IP 地址。所有其他设备都需要使用 DHCP 为其分配 IP 地址。这是我所做的:
在需要静态 IP 的 3 个设备中,我分配了静态 IP 192.168.1.64、192.168.1.65 和 192.168.1.66。然后我将静态 IP 分配给两个接入点 192.168.1.67 和 192.168.1.68。我还使用 DHCP 池地址将此接入点设置为 DHCP 服务器
- 192.168.1.100 - 192.168.1.150(其中之一)
- 192.168.1.151 - 192.168.1.200(另一个)
然后,我为我的 Thomson 路由器分配了从 192.168.1.69 到 192.168.1.200 的 DHCP 池地址。
现在一切正常。我的问题是我不确定接入点上的 DHCP 范围是如何工作的。他们是否知道 Thompson 路由器上的 DHCP 池?是否有可能一个接入点分配 .100,Thomson 路由器也如此?这当然一点也不好,因为有些设备会相互通信。
让 2 个接入点通过 DHCP 从 Thompson 路由器获取 IP 并将 Thomson 路由器作为唯一的 DHCP 服务器是最佳选择吗?你会怎么做?。先感谢您。
proxy - Ubuntu 9.10 和 Squid 2.7 透明代理 TCP_DENIED
在过去的两天里,我们试图让 squid 2.7 与 ubuntu 9.10 一起工作。运行 ubuntu 的计算机有两个网络接口:eth0 和 eth1,dhcp 在 eth1 上运行。两个接口都有静态 IP,eth0 连接到 Internet,eth1 连接到我们的 LAN。
我们实际上已经遵循了几十个不同的教程,但都没有成功。这里的教程是我们做的最后一个,它实际上给了我们一些结果:http ://www.basicconfig.com/linuxnetwork/setup_ubuntu_squid_proxy_server_beginner_guide 。
当我们尝试从 LAN 访问像 Seriouswheels.com 这样的网站时,我们会在客户端机器上收到以下消息:
错误
所请求的网址无法检索
尝试处理请求时遇到无效请求错误:
GET / HTTP/1.1
主机:www.seriouswheels.com
连接:keep-alive
用户代理:Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.11 Safari/532.9
Cache-Control: max-age=0
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png, / ;q=0.5 Accept -编码:gzip,deflate,sdch Cookie:__utmz=88947353.1269218405.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __qca=P0-1052556952-1269218405250; __utma=88947353.1027590811.1269218405.1269218405.1269218405.1;__qseg=Q_D Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
一些可能的问题是:
缺少或未知的请求方法。
缺少网址。
缺少 HTTP 标识符 (HTTP/1.0)。
请求过大。
POST 或 PUT 请求缺少内容长度。
主机名中的非法字符;不允许使用下划线。
您的缓存管理员是网站管理员。
以下是所有配置文件:/etc/squid/squid.conf、/etc/network/if-up.d/00-firewall、/etc/network/interfaces、/var/log/squid/access.log。某处有问题,但我们无法弄清楚在哪里。
我们所有这一切的最终目标是将内容叠加到客户端在 LAN 上请求的每个页面上。我们被告知 squid 是执行此操作的方法,但在游戏的这一点上,我们只是试图正确设置 squid 作为我们的代理。
提前致谢。
squid.conf
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.0.0/24
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports 端口 80 # http
acl Safe_ports 端口 21 # ftp
acl Safe_ports 端口 443 # https
acl Safe_ports 端口 70 # gopher
acl Safe_ports 端口 210 # wais
acl Safe_ports 端口 1025-65535 # 未注册端口
acl Safe_ports 端口 280 # http-mgmt
acl Safe_ports 端口488 # gss-http
acl Safe_ports 端口 591 # filemaker
acl Safe_ports 端口 777 # 多重 http
acl Safe_ports 端口 631 # cups
acl Safe_ports 端口 873 # rsync
acl Safe_ports 端口 901 # SWAT
acl 清除方法 PURGE
acl CONNECT 方法 CONNECT
http_access 允许管理器 localhost
http_access 拒绝管理器
http_access 允许清除 localhost
http_access 拒绝清除
http_access 拒绝! Safe_ports
http_access 拒绝 CONNECT !SSL_ports
http_access 允许 localhost
http_access 允许 localnet
http_access 拒绝所有
icp_access 允许 localnet
icp_access 拒绝所有
http_port 3128
hierarchy_stoplist cgi-bin ?
cache_dir ufs /var/spool/squid/cache1 1000 16 256
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package (.gz)*)$ 0 20% 2880
刷新模式。0 20% 4320
acl 广播 rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 拒绝广播
acl apache rep_header 服务器 ^Apache
broken_vary_encoding 允许 apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
cache_mgr webmaster
cache_effective_user proxy
cache_effective_group proxy
hosts_file /etc /hosts
coredump_dir /var/spool/squid
访问日志
1269243042.740 0 192.168.1.11 TCP_DENIED/400 2576 GET NONE:// - NONE/- text/html
00-防火墙
iptables -F iptables -t nat -F iptables -t mangle -F iptables -X
回声 1 | 三通 /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
联网
自动 lo
iface lo inet 环回
auto eth0
iface eth0 inet 静态
地址 142.104.109.179
网络掩码 255.255.224.0
网关 142.104.127.254
auto eth1
iface eth1 inet 静态
地址 192.168.1.100
网络掩码 255.255.255.0
dhcp - ARP 通讯
DHCP 是否仅使用 ARP 作为通信协议来分配 IP 地址?