noumenia/mmdbdaemon

mmDbDaemon 是一个内存驻留的 MaxMind 数据库读取器的 PHP 实现。

安装: 11

依赖: 0

建议者: 0

安全: 0

星星: 0

分支: 0

类型:项目

1.8 2023-11-29 14:24 UTC

This package is auto-updated.

Last update: 2024-09-20 13:13:05 UTC


README

                      ____  _     ____
  _ __ ___  _ __ ___ |  _ \| |__ |  _ \  __ _  ___ _ __ ___   ___  _ __
 | '_ ` _ \| '_ ` _ \| | | | '_ \| | | |/ _` |/ _ \ '_ ` _ \ / _ \| '_ \
 | | | | | | | | | | | |_| | |_) | |_| | (_| |  __/ | | | | | (_) | | | |
 |_| |_| |_|_| |_| |_|____/|_.__/|____/ \__,_|\___|_| |_| |_|\___/|_| |_|

mmDbDaemon 是一个内存驻留的 MaxMind 数据库读取器的 PHP 实现。

mmDbDaemon 通过在持久内存驻留对象上运行查询,而不是重复加载 MaxMind 数据库进行多次查询,提供了一个简单的方式来并行执行查询并重用相同的数据库。

特性

  • JSON 响应
  • 监听 IP 地址/端口或 UNIX 套接字
  • 支持信号

要求

使用 RPM 包安装

您可以通过 copr 存储库安装 mmDbDaemon,对于 Alma/Rocky/Oracle Enterprise Linux 和 Fedora,只需使用

dnf copr enable mksanthi/noumenia
dnf install mmDbDaemon

使用 Composer 安装

您可以使用 composer 安装 mmDbDaemon,要获取最新版本,请使用 create-project 命令,最后的点很重要,因为它告诉 composer 将文件保存在当前目录中。

composer create-project noumenia/mmdbdaemon .

如何使用

一旦守护进程运行,连接到套接字或 IP/端口,并发送以 NULL 结尾的 IP 地址。守护进程将以 JSON 格式的数据库结果进行响应。

Usage: mmdbdaemon [OPTION]...

  -V,  --version             display version information only
  -h,  --help                display help about parameters
  -v,  --verbose             enable verbose output to stdout

  -u,  --user                Effective user
  -g,  --group               Effective group
  -p,  --pid                 PID file
  -l,  --processlimit        Process limit
  -c,  --connection          Connection string
  -a,  --autoload            MaxMind DB Reader PHP autoload.php file
  -m,  --mmdb                MMDB file (eg: GeoLite2-City.mmdb)

  The connection string can be a UNIX socket or an IPv4/IPv6 address/port.
  UNIX Socket  : unix:/run/mmDbDaemon/mmDbDaemon.sock
  Address/port : inet:9999@127.0.0.1

示例客户端

<?php

// Connect to a socket and open a stream
$fp = @stream_socket_client("unix:///run/mmDbDaemon/mmDbDaemon.sock", $errno, $errstr);

// or to connect via TCP
// $fp = stream_socket_client("tcp://127.0.0.1:9999", $errno, $errstr);

// IP address terminated by a NULL character
fwrite($fp, "46.101.128.168\0");

// Loop
while(!feof($fp)) {

	// Read from the stream
	echo fgets($fp, 1024);

}

// Close the stream
fclose($fp);

相关项目