mIRC Home    About    Download    Register    News    Help

Print Thread
#68273 17/01/04 03:57 PM
C
CodeMonkey
CodeMonkey
C
I am trying to write a netmeeting plugin for mirc mainly to be used for a video connection. Creating a executable and communicating with mirc via DDE is not a problem. However, I do not see a way to get a IP address for a user in the userlist. Is there a way to do this? I suppose I could spoof a DCC connection to the server but I really don't want to do that if I don't have to. Any suggestions?

/DNS isn't reliable unfortunately.

Thanks.

Last edited by CodeMonkey; 17/01/04 03:58 PM.
Joined: Feb 2003
Posts: 2,737
Hoopy frood
Offline
Hoopy frood
Joined: Feb 2003
Posts: 2,737
Have you tried passing a hostname instead? I'm not entirely sure what you're trying to do, but what I know about netmeeting... you can pass either ip OR host. Or perhaps you could resolve the IP in your own plugin.

- Raccoon


Well. At least I won lunch.
Good philosophy, see good in bad, I like!
C
CodeMonkey
CodeMonkey
C
You would still need a valid hostname. the /DNS command for example, doesn't give the actual hostname all the time. You need the address or name of the users actual PC to establish a direct netmeeting connection, similar to the peer to peer DCC connection.

I would need the users actual hostname to resolve it in my plugin. Many servers don't even display actual hostnames anymore.

Thanks for the reply. I think what i am looking for is a magic mirc command like:

/IP nickname

that returns the users IP address smile

Also, I don't see where I have a 'looking at' turned off.

Joined: Jan 2003
Posts: 2,973
K
Hoopy frood
Offline
Hoopy frood
K
Joined: Jan 2003
Posts: 2,973
Well, assuming this is an authorizd connection, and that the other user is allowing you to connect (or vise versa) why not just use a ctcp notice.

/ctcp nick NETMEETING <ip>
ctcp *:NETMEETING:*: {
; net meeting stuff here
}

EDIT:
Example..

menu nicklist {
Connect To $1 via NetMeeting: /ctcp $1 NETMEETING $ip
}

ctcp *:NETMEETING:*: {
if (*.*.*.* iswm $2) /blah goes here
}

note: you may even use $longip just so the ip isn't as noticible to someone whom happens to catch the packet. They may just assume its a $ctime or some other setting.

Joined: Dec 2002
Posts: 2,884
S
Hoopy frood
Offline
Hoopy frood
S
Joined: Dec 2002
Posts: 2,884
Basically if the server is hiding/hashing the address then you can't get it. After all, pretty much the entire reason servers do that is to stop people getting other users' IPs. You might as well attempt a DNS via code and then if it fails prompt the user so they can manually ask for (and input) a real address.

C
CodeMonkey
CodeMonkey
C
Thanks guys. Using ctcp is probably the best answer. However $longip didn't give me anything. $ip works fine though. Thanks again.

D
DaveC
DaveC
D
try
//echo . $longip(192.168.0.1)
//echo . $longip(3232235521)

result
. 3232235521
. 192.168.0.1

then try (while online)
//echo . $longip($ip)

$longip converts a aaa.bbb.ccc.ddd ip to its true 64bitvalue

The 64bitvalue well not be so noticable to a snooper as being a ip address

I
Iori
Iori
I
Just nitpicking laugh
$longip converts a aaa.bbb.ccc.ddd ip to a 32-bit value

D
DaveC
DaveC
D
baaa humbug, you are so right.

/me thinks for a few seconds then edits his message....

well the 64bit value is the same just the top 32bits are 0 <snicker snicker> (damn i hate making boobups)

C
CodeMonkey
CodeMonkey
C
Thanks again everybody!

Joined: Jan 2003
Posts: 423
P
Fjord artisan
Offline
Fjord artisan
P
Joined: Jan 2003
Posts: 423
Have a look at the opportunities available under /STATS for the servers you are using. Some have specific commands for retrieving the "IP on connect" or "hostname on connect" for a particular user. (IIRC, it's /stats L and /stats l respectively on IRCnet - it will be different with other IRCd's)

(I very much doubt that this will be possible on IRCd's hiding user addresses, but where it CAN be done, experience suggests that it can return results faster than /dns)

PM


Link Copied to Clipboard