如何查询Web3 RPC客户端当前对接的区块链网络(如Ethereum Mainnet等)
查询Web3 RPC客户端对接的区块链网络
不管你用Web3类库还是直接调用RPC端点,核心都是通过**链ID(Chain ID)**识别当前对接的网络——不同主流公链的Chain ID是唯一的。下面是几种常用查询方式:
1. 使用Web3.js库
初始化Web3实例后,调用net.getId()或eth.getChainId()方法:
const Web3 = require('web3'); const web3 = new Web3('你的RPC端点URL'); // 方式1:获取链ID web3.net.getId().then(chainId => { console.log('当前链ID:', chainId); // 对应网络映射:1=以太坊主网,137=Polygon主网,56=BSC主网等 }); // 方式2:另一种获取链ID的途径 web3.eth.getChainId().then(chainId => { console.log('当前链ID:', chainId); });
2. 使用Ethers.js库
通过Provider实例调用getNetwork(),直接返回网络名称和链ID:
const { ethers } = require('ethers'); const provider = new ethers.providers.JsonRpcProvider('你的RPC端点URL'); provider.getNetwork().then(network => { console.log('当前网络名称:', network.name); console.log('当前链ID:', network.chainId); // 示例输出:network.name = 'homestead'(以太坊主网)、'matic'(Polygon主网)等 });
3. 直接调用RPC端点(无需类库)
用curl或HTTP工具发送eth_chainId请求,返回十六进制链ID,转十进制即可对应网络:
curl -X POST \ -H "Content-Type: application/json" \ --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' \ 你的RPC端点URL
返回示例:{"jsonrpc":"2.0","id":1,"result":"0x1"},其中0x1转十进制为1,对应以太坊主网。
常见主流网络链ID映射:
- 以太坊主网:1
- Polygon主网:137
- BSC主网:56
- 以太坊Goerli测试网:5
- Polygon Mumbai测试网:80001
内容的提问来源于stack exchange,提问作者M. Akar
相关产品推荐
相关产品推荐

