Flutter域名信息查询插件whois的使用

发布于 1周前 作者 vueper 来自 Flutter

Flutter域名信息查询插件whois的使用

这是一个轻量级且高性能的WHOIS客户端,支持数百种顶级域名(TLDs)。它提供了一种简便的方法来从移动应用程序、桌面和命令行界面执行WHOIS查询。

使用方法

你可以通过以下方式获取WHOIS查询的原始结果:

// 导入whois包
import 'package:whois/whois.dart';

main() async {
  // 查询的域名
  final whoisResponse = await Whois.lookup('xeost.com');

  // 打印原始结果
  print(whoisResponse);
}

你也可以将这个结果转换为带有单独值的Map:

// 将查询结果格式化为键/值对
final parsedResponse = Whois.formatLookup(whoisResponse);

// 打印格式化后的结果
print(parsedResponse);

完整示例Demo

以下是完整的示例代码,展示了如何使用whois插件进行域名信息查询,并处理查询结果:

import 'package:whois/whois.dart';

main() async {
  // 要查询的域名
  const domain = 'google.com';

  // 额外的查询选项
  var options = const LookupOptions(
    // 设置超时时间为10秒
    timeout: Duration(milliseconds: 10000),

    // 设置WHOIS服务器端口,默认是43
    port: 43,
  );

  try {
    // 执行WHOIS查询
    final whoisResponse = await Whois.lookup(domain, options);

    // 注释掉打印原始结果
    // print(whoisResponse);

    // 将查询结果格式化为键/值对
    final parsedResponse = Whois.formatLookup(whoisResponse);

    // 打印解析后的关键信息
    print('The domain ${parsedResponse['Domain Name'].toLowerCase()} is registered with ${parsedResponse['Registrar']}');
    print('Domain is due to expire, ${parsedResponse['Registry Expiry Date']}');
    print('For abuse please contact, ${parsedResponse['Registrar Abuse Contact Email']}');
  } catch (e) {
    // 捕获并打印错误信息
    print('Error: $e');
  }
}

更多关于Flutter域名信息查询插件whois的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter域名信息查询插件whois的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,你可以使用whois包来查询域名信息。以下是一个如何使用该插件的示例代码。首先,你需要在你的pubspec.yaml文件中添加whois依赖:

dependencies:
  flutter:
    sdk: flutter
  whois: ^0.4.0  # 请检查最新版本号

然后,运行flutter pub get来获取依赖。

接下来,你可以在你的Dart文件中使用whois包来查询域名信息。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:whois/whois.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Whois Query Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: WhoisScreen(),
    );
  }
}

class WhoisScreen extends StatefulWidget {
  @override
  _WhoisScreenState createState() => _WhoisScreenState();
}

class _WhoisScreenState extends State<WhoisScreen> {
  final TextEditingController _controller = TextEditingController();
  String _whoisInfo = '';

  Future<void> _queryWhois() async {
    setState(() {
      _whoisInfo = 'Loading...';
    });

    try {
      String domain = _controller.text;
      WhoisResult result = await Whois.lookup(domain);
      setState(() {
        _whoisInfo = result.raw;
      });
    } catch (e) {
      setState(() {
        _whoisInfo = 'Error: ${e.toString()}';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Whois Query'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
              controller: _controller,
              decoration: InputDecoration(
                labelText: 'Enter domain name',
              ),
              keyboardType: TextInputType.text,
            ),
            SizedBox(height: 16.0),
            ElevatedButton(
              onPressed: _queryWhois,
              child: Text('Query Whois'),
            ),
            SizedBox(height: 16.0),
            Text(
              _whoisInfo,
              style: TextStyle(fontSize: 16.0),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,用户可以输入域名并点击按钮来查询Whois信息。查询结果被显示在Text组件中。

注意:

  1. 确保你已经正确安装了whois包。
  2. Whois.lookup方法返回一个WhoisResult对象,其中包含原始Whois信息和其他可能的解析数据。在这个示例中,我们仅显示了原始Whois信息(result.raw)。
  3. 在实际使用中,你可能需要处理更多的异常情况和用户输入验证。

这个示例提供了一个基本的框架,你可以根据需要进行扩展和修改。

回到顶部