Skip to content

Latest commit

 

History

History
231 lines (168 loc) · 4.76 KB

File metadata and controls

231 lines (168 loc) · 4.76 KB

贡献指南 | Contributing Guide

感谢您对住宅 IP 检测工具的关注!我们欢迎所有形式的贡献。

🎯 贡献方式

1. 报告 Bug

如果您发现了 Bug,请:

  1. 检查 Issues 是否已有相同问题
  2. 如果没有,创建新 Issue,包含:
    • Bug 描述
    • 复现步骤
    • 预期行为
    • 实际行为
    • 截图(如果适用)
    • 浏览器和操作系统信息

2. 提出新功能

如果您有好的想法,请:

  1. 创建 Issue,标题以 [Feature Request] 开头
  2. 详细描述功能需求和使用场景
  3. 等待社区讨论和反馈

3. 提交代码

步骤:

  1. Fork 仓库

    # 点击页面右上角的 Fork 按钮
  2. 克隆到本地

    git clone https://github.com/YOUR_USERNAME/residential-ip-checker.git
    cd residential-ip-checker
  3. 创建分支

    git checkout -b feature/your-feature-name
    #
    git checkout -b fix/your-bug-fix
  4. 进行修改

    • 保持代码风格一致
    • 添加必要的注释
    • 测试您的更改
  5. 提交更改

    git add .
    git commit -m "feat: add amazing feature"
    #
    git commit -m "fix: resolve issue #123"
  6. 推送到 GitHub

    git push origin feature/your-feature-name
  7. 创建 Pull Request

    • 访问您的 Fork 仓库
    • 点击 "New Pull Request"
    • 填写 PR 描述
    • 等待审核

📝 代码规范

HTML

  • 使用语义化标签
  • 保持良好的缩进(2 空格)
  • 添加必要的注释

CSS

  • 使用有意义的类名
  • 遵循 BEM 命名规范(可选)
  • 保持样式模块化

JavaScript

  • 使用现代 ES6+ 语法
  • 添加错误处理
  • 函数命名清晰明确
  • 添加必要的注释

示例:

/**
 * 检测 IP 类型
 * @param {string} org - ISP 组织名称
 * @returns {object} IP 类型信息
 */
function detectIPType(org) {
    const orgLower = org.toLowerCase();
    
    // 数据中心关键词
    const datacenterKeywords = ['google', 'amazon', 'microsoft'];
    
    // 住宅 ISP 关键词
    const residentialKeywords = ['comcast', 'att', 'verizon'];
    
    if (datacenterKeywords.some(keyword => orgLower.includes(keyword))) {
        return {
            type: 'datacenter',
            safe: false,
            message: '数据中心 IP'
        };
    }
    
    // ... 更多逻辑
}

🎨 设计规范

  • 保持简洁、现代的设计风格
  • 确保响应式设计(支持移动端)
  • 使用一致的颜色方案
  • 保持良好的可访问性(Accessibility)

🧪 测试

在提交 PR 前,请确保:

  • 在 Chrome、Firefox、Safari 中测试
  • 在移动设备上测试
  • 检查控制台无错误
  • 验证所有链接可用

📋 Commit 规范

使用语义化的 commit 信息:

  • feat: 新功能
  • fix: Bug 修复
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • test: 测试相关
  • chore: 构建/工具相关

示例:

feat: add batch IP checking feature
fix: resolve mobile layout issue
docs: update README with new examples

🌟 优先贡献方向

我们特别欢迎以下方面的贡献:

1. ISP 数据库扩充

添加更多 ISP 关键词,特别是:

  • 美国各州的地方 ISP
  • 其他国家的住宅 ISP
  • 移动运营商

示例

const residentialKeywords = [
    // 美国主要 ISP
    'comcast', 'xfinity', 'att', 'verizon', 'cox',
    
    // 添加更多...
    'rcn', 'wow', 'mediacom', 'windstream',
    
    // 其他国家
    'bt', 'sky', 'virgin media', // 英国
    'telstra', 'optus', // 澳大利亚
];

2. 检测算法优化

改进 IP 类型判断逻辑:

  • 更准确的关键词匹配
  • 基于 ASN 的判断
  • 机器学习模型(可选)

3. 多语言支持

添加国际化支持:

  • 英文(en)
  • 日文(ja)
  • 韩文(ko)
  • 其他语言

4. 新功能

  • 批量 IP 检测
  • IP 历史记录
  • 导出检测报告
  • API 接口

5. 文档完善

  • 使用教程
  • 最佳实践
  • 常见问题(FAQ)
  • 视频教程

💬 讨论

有任何问题或想法?

🙏 致谢

感谢所有贡献者!您的贡献让这个项目变得更好。

📄 许可证

贡献的代码将采用 MIT License 开源。


再次感谢您的贡献!❤️