gpt4 book ai didi

php - 我可以从特定 IP(如果机器有两个 IP)在 PHP 中打开套接字吗?

转载 作者:可可西里 更新时间:2023-11-01 00:16:14 26 4
gpt4 key购买 nike

我正在使用 PHPMailer,它使用 fsockopen 访问 SMTP 服务器。

但是机器有两个不同反向DNS记录的IP。所以在电子邮件标题中我得到了以下内容:

Received: from one-server.tld (HELO another-server.tld) ...

我需要隐藏 one-server.tld 以支持 another-server.tld。但是我需要这两个 IP 及其当前的 RDNS 设置。

最佳答案

我认为使用 fsockopen 是不可能的。但在 curlfopenstream 函数中是可能的。你需要的是stream_socket_client()功能。

这里有一些实现它的方法。

  1. 使用可在 fopen 函数族和流函数族中使用的上下文参数。请参阅示例。

    $opts = array(
    'socket' => array(
    'bindto' => '192.168.0.100:0',
    ),
    );
    // create the context...
    $context = stream_context_create($opts);
    $contents = fopen('http://www.example.com', 'r', false, $context);

    还有 stream_socket_client

    $fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $opts);
    if (!$fp) {
    echo "$errstr ($errno)<br />\n";
    } else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
    echo fgets($fp, 1024);
    }
    fclose($fp);
    }
  2. 使用 socket_bind . PHP.NET 得到了一个简单的例子 here .

关于php - 我可以从特定 IP(如果机器有两个 IP)在 PHP 中打开套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8967947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com