Well, lets see why it's showing your IP. This is taken directly from the mIRC help file:
$ip
Returns your IP address.
Also, in your original code (broken down line by line):
on @*:Join:#CSmixes:{
mode $chan +v $nick
if ( $chan == #CSmixes ) msg $chan 7,15 $nick is from $country($address($nick,2))
Not needed, you already defined $chan as being #CSMixes on the first line, so it's not possible for $chan to evaluate to anything except #CSMixes
if ( $chan == #CSmixes ) msg $chan 7,15 $nick have this External IP: $ip
Not needed, you already defined $chan as being #CSMixes on the first line, so it's not possible for $chan to evaluate to anything except #CSMixes
if ( $chan == #CSmixes ) msg $chan 7,15 $nick have this Internal IP: $address(
nick,1)
First: Not needed, you already defined $chan as being #CSMixes on the first line, so it's not possible for $chan to evaluate to anything except #CSMixes
Second: Should be
$remove($address(
$nick,2)
,!,*,@)Generally speaking, $address($nick,2) will return the user's hostmask and not their IP. It would only show the IP if that user's IP could not be reverse dns'd when they connected to the server, which is something you can't control.
And unless you didn't post all of the code, you're missing a closing brace at the end.
$remove($address($nick,2),!,*,@) should be for External IP and not Internal IP. Unless you want to break into an user's system, there's no way you can determine their internal address. The user may not even have one, in which case they are directly connected to a modem.