No offense, but this is exceptionally confusing.
"ulx banip" is already used by the ban by IP functionality of Cobalt77's fairly popular "Custom Commands" module, so you're running into the potential for collision here.
Beyond that, if this has nothing to do with banning by IP, how is this any different than "ulx ban <target name> 0" ?
You listed the ULX folder structure incorrectly. It should be garrysmod/addons/ULX/lua/ulx/modules/sh (you missed the lua). You should also avoid installing your modules directly into the ULX folder structure. You should create the required ULX folder structure in your own addon folder (ie, /addons/permaban/lua/ulx/modules/sh), otherwise you create an unnecessary and potentially problematic dependency on the ULX addon folders. What if someone clears out and re-installs ULX without remembering that he/she had to deploy your addon directly to the ULX folder?