Code archives/Networking/Use any form of Address with UDP communication
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| The explanations are in teh comments. have fun! | |||||
;How To use
;Client gets the servers IP by calling
;MyIp = GetIp("www.address.com",[port])
;this can also be used ...
;MyIp = GetIp("localhost",[port])
;or this...
;MyIp = GetIp("xxx.xxx.xxx.xxx",[port])
;the Function will return 0 if no ip could be resolved
;or an integer ip if it was!.
;IMPORTANT
;The server must open a TCP server whilst listening for connections.
;The TCP server must be on the same port as the UDP server (logical)
;What happens is, if the address is identified as a name address. Then
;an attempt to connect to a TCP server on the port is made.
;If the TCP server exsists, it will extract the IP, and instantly shut down (client)
;the tcp connection without sending or recieving any data.
;EXAMPLE FOR HOST -------------------------------
Global MyUdpPort=101
Global NameIpBounce=CreateTCPServer(MyUdpPort)
;------------------------------------------------
;Here are the functions that do the business for the client
Function GetIp(Address$,Port=0)
;Check for character type
Found=False
For I=1 To Len(Address$)
GetAsc=Asc(Mid$(Address$,I,1))
If GetAsc < 48 Or GetAsc > 57
If GetAsc <> 46 Then
Found=True
Exit
End If
End If
Next
If Found=False Then
Return GetIpFromDotted(Address$)
Else
Return GetIpFromName(Address$,Port)
End If
End Function
Function GetIpFromDotted(inputip$)
break1 = Instr(inputIP$,".") : break2 = Instr(inputIP$,".",break1+1) : break3 = Instr(inputIP$,".",break2+1)
add1 = Mid(inputIP$,1,break1-1):add2 = Mid(inputIP$,break1+1,break2-1):add3 = Mid(inputIP$,break2+1,break3-1):add4 = Mid(inputIP$,break3+1)
ipreturn=(add1 Shl 24) + (add2 Shl 16) + (add3 Shl 8) + add4
Return ipreturn
End Function
Function GetIpFromName(Name$,Port)
OpenStream=OpenTCPStream(Name$,Port)
If OpenStream=0 Then Return 0
RealAddress=TCPStreamIP(OpenStream)
CloseTCPStream(OpenStream)
Return RealAddress
End Function |
Comments
None.
Code Archives Forum