[erlang-questions] Simple NAT traversal

Ivan Ostres <>
Wed Feb 1 20:37:29 CET 2012


Either your network is badly designed or you are doing something you 
really shouldn't ;-).

On 2/1/12 7:48 PM, eigenfunction wrote:
> Our NATs are dynamic alas :-(
>
> On Feb 1, 3:54 pm, Max Bourinov<>  wrote:
>> Our corporate clients use static IP for such tasks. Maybe it is possible to
>> have static IP?
>>
>> Best regards,
>> Max
>>
>>
>>
>>
>>
>>
>>
>> On Wed, Feb 1, 2012 at 4:54 PM, eigenfunction<>  wrote:
>>> @Edward
>>> You are right and thank you again for your help
>>> @Michael
>>> I am in a corporate intranet, so i do not have access to the outside
>>> world and there are a couple of nats between the networks.
>>> On 1 Feb., 14:37, Edward Wang<>  wrote:
>>>> A tcp server itself is simple enough, but that's another piece of
>>>> software running on a separated machine. That's a big disadvantage. On
>>>> the other hand, a UPnP control point is something you can integrate
>>>> into your own application, given your NAT device speaks UPnP and you
>>>> want to deal with the protocol.
>>>> -Edward
>>>> On Wed, Feb 1, 2012 at 9:19 PM, eigenfunction<>
>>> wrote:
>>>>> Thank you for the response. But before i wade into that territory,
>>>>> do you think it will be easier than just writing a tcp server?
>>>>> Anyway, i am going to check that out.
>>>>> On 1 Feb., 10:50, Edward Wang<>  wrote:
>>>>>> If your NAT device supports UPnP, you can ask for its external address
>>>>>> using UPnP protocol. But there's nothing simple in it. UPnP is a
>>>>>> horrible protocol.
>>>>>> That said, if you do want to try this, you can check out UPnP
>>>>>> implementation in etorrent. I did that about one year ago for opening
>>>>>> port mapping. The related source code are
>>>>>> (https://github.com/edwardw/etorrent/tree/master/apps/etorrent/src):
>>>>>>      etorrent_upnp_sup.erl
>>>>>>      etorrent_upnp_proto.erl
>>>>>>      etorrent_upnp_net.erl
>>>>>>      etorrent_upnp_handler.erl
>>>>>>      etorrent_upnp_entity.erl
>>>>>> They are quite standalone and complete UPnP implementation. Take a
>>>>>> look at how add_port_mapping is implemented:
>>> https://github.com/jlouis/etorrent/blob/master/apps/etorrent/src/etor...
>>>>>> It should be easy enough to add your own get_external_address
>>>>>> function, which is defined in following specification:
>>>>>>     http://upnp.org/specs/gw/UPnP-gw-WANIPConnection-v1-Service.pdf
>>>>>> Regards,
>>>>>> Edward
>>>>>> On Wed, Feb 1, 2012 at 4:25 PM, eigenfunction<>
>>> wrote:
>>>>>>> Hi everybody,
>>>>>>> i have an erlang application running behind a nat. Now i have come
>>> to
>>>>>>> a point where i need to know my public ip. I was thinking about
>>>>>>> running a tiny tcp server behind the nat whose sole purpose would be
>>>>>>> to send me my public ip. My question is this: isn't there a more
>>>>>>> simple alternative? Heck, even if i could determine the public ip of
>>>>>>> the NAT device without doing a "backflip" it will be enough for my
>>>>>>> case.
>>>>>>> Any idea?
>>>>>>> _______________________________________________
>>>>>>> erlang-questions mailing list
>>>>>>> 
>>>>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>>> _______________________________________________
>>>>>> erlang-questions mailing list
>>>>>> ://
>>> erlang.org/mailman/listinfo/erlang-questions
>>>>> _______________________________________________
>>>>> erlang-questions mailing list
>>>>> 
>>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>> _______________________________________________
>>>> erlang-questions mailing list
>>>> ://
>>> erlang.org/mailman/listinfo/erlang-questions
>>> _______________________________________________
>>> erlang-questions mailing list
>>> 
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> ://erlang.org/mailman/listinfo/erlang-questions
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>




More information about the erlang-questions mailing list