public String getIpStr() {
        if (ipStr == null) {
            ipStr = NetUtil.bytesToIpAddress(ip);
        }
        return ipStr;
    }
@implNote Note that turms-gateway doesn't parse and validate the request because 1. For
          better performance (zero copy) 2. Decouple the business logic so that turms-service
          servers can change the structure of DTOs without the need to upgrade and restart
          turms-gateway servers turms-service servers should validate it by themselves
turms-server-common/src/main/java/im/turms/server/common/access/servicerequest/dto/ServiceRequest.java