定制 noumenia/mmdbdaemon 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

noumenia/mmdbdaemon

Composer 安装命令:

composer create-project noumenia/mmdbdaemon

包简介

mmDbDaemon is a memory-resident MaxMind Database reader implementation in PHP.

README 文档

README

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

mmDbDaemon is a memory-resident MaxMind Database reader implementation in PHP.

Instead of loading the MaxMind database over and over again for multiple queries, mmDbDaemon offers a simple way to run queries on a persistent memory-resident object that forks separate processes in parallel and re-using the same database.

Features

  • JSON reply
  • Listen on IP address/port or UNIX sockets
  • Support for signals

Requirements

Install with RPM packages

You may install mmDbDaemon via the copr repository, for Alma/Rocky/Oracle Enterprise Linux and Fedora, simply use:

dnf copr enable mksanthi/noumenia
dnf install mmDbDaemon

Install with Composer

You may install mmDbDaemon with composer, to get the latest version use the create-project command, the last dot is important because it tells composer to save the files in the current directory.

composer create-project noumenia/mmdbdaemon .

How to use

Once the daemon is running, connect to the socket or IP/port and send the IP address terminated by a NULL. The daemon will respond with a JSON-formatted database result.

Usage: mmdbdaemon [OPTION]...

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

  -u,  --user                Daemon user
  -g,  --group               Daemon group
  -p,  --pid                 PID file
  -l,  --processlimit        Process limit
  -c,  --connection          Connection string
  -t,  --timeout             Socket/Stream timeout in seconds
  -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

Example client

<?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);

Related projects

noumenia/mmdbdaemon 适用场景与选型建议

noumenia/mmdbdaemon 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 16 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 09 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「geolocation」 「geoip」 「daemon」 「mmdb」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 noumenia/mmdbdaemon 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 noumenia/mmdbdaemon 我们能提供哪些服务?
定制开发 / 二次开发

基于 noumenia/mmdbdaemon 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 16
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 19
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-only
  • 更新时间: 2023-09-12