如何使用 PHP5 确定多播 MAC 地址?

发布于 2024-10-13 05:00:14 字数 193 浏览 6 评论 0原文

我正在 PHP 中开发一个计费工具,它连接到 CISCO 交换机并在指定端口上插入 MAC 地址。我使用 Symfony 作为我的底层 php 框架。

如果我尝试插入多播 MAC 地址作为快速以太网安全地址,CISCO 交换机会拒绝该地址。所以我尝试构建一个验证器来确定给定的 MAC 地址是否是多播地址。

有人可以帮助我提供片段或提示吗?

I'm working on a Accounting Tool in PHP which connects to a CISCO Switch and insert a MAC Address on a specified port. I use Symfony as my underlying php framework.

If I try to insert a Multicast MAC address as a FastEthernet secure address the CISCO Switch reject the address. So I try to build a validator which determine if the given MAC address is a multicast address or not.

Is there someone out there who can help me with a snippet or tip?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

热血少△年 2024-10-20 05:00:14

试试这个片段:

function isPhysicalAddress($address){
    if (strlen($address) > 17) return 0;

    if ($address == "") return 0;

    if (!eregi("^[0-9A-Z]+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)$", $address)) return 0;

    $arr=explode("-",$address);

    if (strlen($arr[0]) != 2) return 0;
    if (strlen($arr[1]) != 2) return 0;
    if (strlen($arr[2]) != 2) return 0;
    if (strlen($arr[3]) != 2) return 0;
    if (strlen($arr[4]) != 2) return 0;
    if (strlen($arr[5]) != 2) return 0;

    return 1;
}

这里找到。

Try this snippet:

function isPhysicalAddress($address){
    if (strlen($address) > 17) return 0;

    if ($address == "") return 0;

    if (!eregi("^[0-9A-Z]+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)+(\-[0-9A-Z]+)$", $address)) return 0;

    $arr=explode("-",$address);

    if (strlen($arr[0]) != 2) return 0;
    if (strlen($arr[1]) != 2) return 0;
    if (strlen($arr[2]) != 2) return 0;
    if (strlen($arr[3]) != 2) return 0;
    if (strlen($arr[4]) != 2) return 0;
    if (strlen($arr[5]) != 2) return 0;

    return 1;
}

Found here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文