See discussion in #6636.
Currently, an implementation detail leaks here:

>  "minping": 9223372036854.775,

This is `std::numeric_limits<int64_t>::max()` milliseconds, or approximately 300,000 years. What we really want to communicate here is that the information is missing. So it would be better to report it as `null`.

>  "minping": null,

netAddr = CNetAddr(params[0].get_str());
    else
        subNet = CSubNet(params[0].get_str());
    if (! (isSubnet ? subNet.IsValid() : netAddr.IsValid()) )
        throw JSONRPCError(RPC_CLIENT_NODE_ALREADY_ADDED, "Error: Invalid IP/Subnet");
    if (strCommand == "add")
    {
        if (isSubnet ? CNode::IsBanned(subNet) : CNode::IsBanned(netAddr))
            throw JSONRPCError(RPC_CLIENT_NODE_ALREADY_ADDED, "Error: IP/Subnet already banned");
        int64_t banTime = 0; 
        if (params.size() >= 3 && !params[2].isNull())
            banTime = params[2].get_int64();
        bool absolute = false;
        if (params.size() == 4 && params[3].isTrue())
            absolute = true;
        isSubnet ? CNode::Ban(subNet, BanReasonManuallyAdded, banTime, absolute) : CNode::Ban(netAddr, BanReasonManuallyAdded, banTime, absolute);
        
        while(CNode *bannedNode = (isSubnet ? FindNode(subNet) : FindNode(netAddr)))
            bannedNode->fDisconnect = true;
    }
    else if(strCommand == "remove")
    {
        if (!( isSubnet ? CNode::Unban(subNet) : CNode::Unban(netAddr) ))
            throw JSONRPCError(RPC_MISC_ERROR, "Error: Unban failed");
    }
    DumpBanlist(); 
    uiInterface.BannedListChanged();
    return NullUniValue;
}
UniValue listbanned(const UniValue& params, bool fHelp)