Yeicos, podrías agregarle $_SERVER[REMOTE_HOST] a la lista de verificaciones de tu función en caso de que no se pueda resolver la ip aunque dudo que llegue esa instancia ya que $_SERVER[REMOTE_ADDR] no debería fallar a menos que se esté haciendo un spoof.