国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

請(qǐng)教在webman中如何獲取服務(wù)器本身的IP地址

euii

問(wèn)題描述

請(qǐng)教在webman中如何獲取服務(wù)器本身的IP地址?我使用了 $_SERVER['SERVER_ADDR' ] 會(huì)報(bào)錯(cuò),說(shuō)沒(méi)有這個(gè)屬性。
那么正確的獲取服務(wù)器本身的IP的方法是什么呢?現(xiàn)在我沒(méi)辦法,直接硬編碼了。

public function share($data): array {

        $token = Redis::hGet(config('weibo.redis_key'), 'access_token');
        $client = new Client();
        try {
            $response = $client->request('POST', config('weibo.share_url'), [
                'form_params' => [
                    'access_token' => $token,
                    'status' => $data['content'],
                    'rip' => '192.168.1.1'
                ]
            ])->getBody()->getContents();
            return json_decode($response, true);
        } catch (GuzzleException $e) {
            throw new BizException(ErrorCode::WEIBO_ERR_CODE, ['message' => $e->getMessage()]);
        }
    }

現(xiàn)在按 nitron 建議,我把rip部分換成 'rip' => request()->getLocalIp() , 執(zhí)行后提示
Error: Call to a member function getLocalIp() on null

上述代碼是在redis-queue里調(diào)用的

class ShareWeiboSend implements Consumer
{

    /**
     * @Inject
     * @var WeiBoService
     */
    private $weiBoService ;

    // 要消費(fèi)的隊(duì)列名
    public $queue = 'share_weibo';

    // 連接名,對(duì)應(yīng) plugin/webman/redis-queue/redis.php 里的連接`
    public $connection = 'default';

    public function consume($data) {

        $content['content'] = $this->weiBoService->makeShareContent($data);
        try {
            $this->weiBoService->share($content);
        } catch (BizException $e) {
            Log::error($e->getMessage());
        }
    }

}
1918 4 2
4個(gè)回答

nitron
  • euii 2022-12-21

    可惜我并不是在Request中,我是一個(gè)隊(duì)列任務(wù)由服務(wù)器端直接運(yùn)行,是遠(yuǎn)端的API要求傳一個(gè)IP地址。

  • euii 2022-12-21

    文檔里有這一句話,我試試看:
    有時(shí)候我們想在其它類中獲取當(dāng)前請(qǐng)求的$request對(duì)象,這時(shí)候我們只要使用助手函數(shù)request()即可;

  • euii 2022-12-21

    我試過(guò)了還是不行,會(huì)報(bào)錯(cuò)

  • euii 2022-12-21

    Error: Call to a member function getLocalIp() on null

不敗少龍

request()->getLocalIp();

  • euii 2022-12-21

    不行的,報(bào)了這個(gè)錯(cuò)誤 Error: Call to a member function getLocalIp() on null

  • 不敗少龍 2022-12-21

    框架升級(jí)試一下

  • euii 2022-12-21

    升級(jí)了,還是不行的,問(wèn)題里的函數(shù)是在redis-queue里調(diào)用的,是不是這時(shí)候是不生產(chǎn)request對(duì)象的。

mosquito

我是這樣獲取服務(wù)器公網(wǎng)IP的 shell_exec('curl ifconfig.me')

  • euii 2022-12-21

    謝謝,直接執(zhí)行shell命令,這個(gè)辦法可行的。

as5739

內(nèi)網(wǎng)ip可以用 getHostByName(getHostName())

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??