You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Web3.js通过以太坊地址查询对应的ENS域名

你调用的getOwner方法仅支持传入ENS域名作为参数,返回该域名的所有者地址,无法用于地址反向查域名场景。

正确实现代码

Web3.js已经封装了现成的反向查询方法getName,直接传入目标地址即可获取绑定的ENS域名:

import Web3 from "web3";

useEffect(() => {
  const web3 = new Web3(window.ethereum);
  // 目标查询地址
  const targetAddress = "0xc74E8eFaFE54481bD109f97422AeBca607499f57";
  
  web3.eth.ens.getName(targetAddress)
    .then((result) => {
      // 对应ENS域名存放在返回结果的name属性中
      console.log(result.name); // 输出 ethereum.eth
    })
    .catch((err) => {
      console.log("该地址未绑定ENS域名", err);
    });
}, []);

注意事项

  • 只有主动设置了反向解析记录的地址才会返回ENS域名,无绑定的场景会抛出异常,建议增加异常捕获逻辑
  • 生产环境使用时建议增加二次校验:拿到返回的域名后再正向调用getAddress查询该域名对应的地址,和原始查询地址做比对,避免用户恶意伪造反向解析记录
  • 如果你使用的Web3.js版本低于1.3.0,没有内置getName方法,可以手动构造反向查询节点实现:
    const reverseNode = `${targetAddress.slice(2)}.addr.reverse`;
    web3.eth.ens.getResolver(reverseNode)
      .then((resolver) => resolver.name())
      .then((name) => console.log(name));
    

内容的提问来源于stack exchange,提问作者soubhagya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:24:05