add isIP function