Friday, December 22, 2006

On yet another new topic, i'm proud to have the first implementation of Mono.Nat available here. Mono.Nat is a C# implementation of the uPnP protocol implementing just the bits needed to forward a port from a uPnP enabled router to your computer. There are plans to implement the PMP protocol aswell, along with any other port forwarding type protocols that get devised in the future. The idea is that regardless of what kind of router you have, you'll be able to map a port with a 3 (or so) lines of code.

It comes with a code example showing you one way in which to use the code. But it is fairly self explanatory. It's as easy as: natDevice.BeginMapPort(12321, TCP); natDevice.EndMapPort();

If anyone has a NAT enabled router, i'd appreciate it if you could load up the TestClient (in the examples directory) and see if it will map and unmap the 4 different ports. If it does, then all is well. If not, then either tell me what the problem is, or try fix it yourself and send me a patch. It's all good :)

7 comments:

Anonymous said...

Excellent work Alan, I'll be testing this out

RichB said...

First time it failed. Second time it appeared to succeed. Outputs are shown below.

Now, I'm using MacOS->m0n0wall->DSL router. I'm not even sure if any of these are uPnP, but I know they're NAT'd.

Original Output
===============

$ mono Program.exe

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for Nat.NatController ---> System.Net.Sockets.SocketException: No such host is known
at System.Net.Dns.hostent_to_IPHostEntry (System.String h_name, System.String[] h_aliases, System.String[] h_addrlist) [0x00000]
at System.Net.Dns.GetHostByName (System.String hostName) [0x00000]
at System.Net.Dns.GetHostEntry (System.String hostNameOrAddress) [0x00000]
at System.Net.Dns.GetHostAddresses (System.String hostNameOrAddress) [0x00000]
at Nat.NatController..cctor () [0x00000] --- End of inner exception stack trace ---

at <0x00000> <unknown method>
at TestClient.Program.Main (System.String[] args) [0x00000]

Second run output
=================
$ mono Program.exe

listening started
If you haven't seen a port map/unmap by now, no router has been found.

Press a key to exit...

Unknown said...

Hi your code is working. But I refactored it a bit.

I would like to send it to you but I cannot find a way to send the code to you.

If you send me an email then I can mail you the code:

ramon dot smits at gmail dot com

Damien said...

Hi,

I've just tested it under WinXP :
Source downloaded 2007-01-31
Compiled under VS2005
First run : Error when sending SearchData

I've noticed that when looking up my local IP, it returns IPv4 addresses, but also IPv6. The first element in the array is IPv6 for me, and this causes an exception when trying to send data.

I've put this function :

private static IPAddress[] GetLocalIPs()
{
List< IPAddress > lst = new List< IPAddress >();
IPAddress[] a= Dns.GetHostAddresses(Dns.GetHostName());
foreach(IPAddress addr in a)
{
if (addr.AddressFamily == AddressFamily.InterNetwork)
{
lst.Add(addr);
}
}
return lst.ToArray();
}

and it work fine for me (but I don't have any upnp elements in my network :/)

梁爵 said...

2020.03.22酒店上班-兼差兼職PART-TIME 酒店工作常問的問題
請問在酒店打工的女生都怎麼上班法?
酒店PT是不是沒有休假?
是有簽約/合約對吧? 不可違約?
薪水大約多少 怎麼領的? 應該不是月薪吧?
女孩子去那裡上班會不會以後就酒店S下去?
是不是有分可帶出場不可帶出場?
帶出場是去開房間酒店S嗎?
酒店工作內容:
桌面服務,般人通常會想偏 其實桌面服務是很簡單 也很單純的一件事
桌面服務有以下幾個要點:
1.桌面上有幾件物品要注意
A.容器杯類有5種(威士忌杯 也就是洋酒杯 ;啤酒杯: 水杯 也就是開水杯;熱茶杯 ;公杯)
B.熱毛巾(當服務生送熱毛巾給消費者使用後 摺整齊後放在旁)
C.水果盤(把面積較大的水果 細分小塊後送至消費者面前)
D.煙灰缸(煙灰缸內別超過3根煙)

2.接下來要注意的事項有以下:
A.當消費者要點歌時 要主動起身(不等消費者開口) 拿麥克風歌本(或遙控器)
B.千萬別讓消費者自己倒酒(或水) 甚至要主動按服務鈴請服務生入內(如倒熱茶 熱毛巾)
C.若消費者有拿煙的動作 記得協助點煙
D.保持桌面清潔(如有水漬要立即擦拭)

3.桌面服務的最大意義為何?
A.讓消費者感到妳貼心和細心(一般女生是不會幫男生有上述情況)
B.藉此增加和消費者良好的互動
八大行業相當特殊,因為他的商品就是“人”。
要在這當中賺大錢不是不可能,只是你要克服的就是所有消費者的人性,簡單說:就是要讓消費者覺得你『物超所值』。

酒店上班是否要簽約嗎?不可違約嗎?
有關於八大行業酒店上班【簽約/合約】的問題!我梁曉尊做一次總解答讓妳們解決心中的困惑。
1:已現在酒店上班沒有所謂的簽合約/切結書,因為這樣是綁小姐的做法,很不道德…【小姐總有一天會離開,強求她留在八大這是不人道的行為】
2:在職人員想更換經紀人或酒店不想做了…卻有合約在身怎麼辦~…!?我梁曉尊直接跟你說可以馬上離開了
a :合約內容本身要件要有【商營利事業登記編號/還有政府認證核發蓋章】因為這些文件都是要繳稅的….一但登報稅了,您自己想想妳在職期間這幾年{妳}家人~早就會知道你在八大行業了…..反而家人卻沒發現,每年也都沒有繳稅單更沒有勞健保,因為這份是假合約【法律用語:偽造文書】
b :合約內容常有一段話:幾年以內不能離職/幾年內不能更換經紀人。這番話已經觸犯【法律用語:強制罪】
c :從一開始的違法合約到內容的不人道,甚至離職還又要賠償..。我梁曉尊跟妳說【妳被唬了】
d :重頭到尾觸法的假合約,真的到警察局/法院 {妳}是贏家。
e :我梁曉尊做經紀人快十年了…我還沒見過有經紀公司拿著合約去警局敢賭這件事。
酒店的規定:
1.其實酒店所謂的規定 取決於是人與人之間互動的生意
所以特別狀況不一 但不見得常發生
2.現在條例都寫的十分清楚 若會有扣錢的規定 主要是針對調皮的小姐
一般小姐不會犯錯 是不會扣錢的 這點請放心
3.例如桌面服務沒做好(Google搜尋:梁曉尊/梁小尊 網站內有專文提到) 跟客人互動不熱絡或是喝醉不能上班之類的。
還有上班不遲到不早退(會扣錢) ,不跟客人報消費價錢(要一問三不知)
到班的日子~不亂請假 上班時要服裝儀容整齊乾淨 不可帶違禁品
至於忌諱:
1.不跟店裡的少爺和行政交往(這樣會影響彼此工作心情)
2.和客人保持和諧的氣氛 畢竟消費者不是來受氣的
也別在客人面前提及消費方式 其他就如同和朋友互動一樣喔
3.其實不要喝醉 這些就不是大問題 清醒時當然會行事更謹慎些
4.八卦事件聽聽就好 千萬別過嘴 否則公親變事主
為何要學會閃酒:
酒的種類繁多 .客人喝的酒不止一種.也許第一桌喝啤酒.
下一桌客人點洋酒.就算酒量再好的人.這樣喝也容易醉的.
因此閃酒的技巧非常重要!.如何不讓客人發現的情況下.讓自己少喝一點.要和客人玩什麼樣的遊戲.才能把時間拉長.自己少輸點少喝點. 這些都是基本功!

上班時段:
以下打卡班次
下午:3點班、4點班、5點班、6點班 (每個班次往後推7小時,就是妳的上班時間)
晚間:7點班、8點班、9點班 (每個班次往後推7小時,就是妳的上班時間)
酒店出場:
(出場)台北市任何一家酒店,單純出場一定要出去。
註:有床的地方不能去 汽車旅館/飯店,包括私人辦公室!。不用擔心得罪客人,也不用怕被扣錢! 當下可立即離開~ 切記先保護自己。
酒店小姐出場接S 純屬個人行為。有些人想賺這個錢….但有些酒店小姐認為不需要!
但是不會有任何人去逼你 為難做自己不喜歡的事。
我梁曉尊舉個例子 女孩們會覺得更貼切 也比較淺顯易懂的邏輯 :
八大行業商品是(人),今天(妳)面前站3個人有~ 王陽明 康康 NONO
(妳)肯定會問 王陽明 可不可以出場接S ?!
至於王陽明是否同意 決定在於自己~。
總結:
在去酒店上班之前,一定要給自己定一個目標及方向,你必需了解自己為何來酒店上班,目的何在? 出發點是什麼?
給自己一個目標,例如:債務還清了就離開、存到了多少錢就走人、或者是打算做多久。
如果漫無目的的一直在酒店做下去,久而久之,就會習慣這樣高所得的工作,然後就會沉迷於其中,而很難脫離這樣的環境。
人對金錢的胃口只會愈來愈大!所以一定要給自己一個明確的目標。
還有…賺到的錢一定要存下來,存下來的才是真正賺到的。

梁爵 said...

2020.07.26今年不敢來酒店上班-酒店打工的原因4月初台北市知名酒店女公關確診,引發「酒店小姐的基本介紹跟工作內容全台酒店歇業」,復業之後政府也祭出實名制,讓所有上門的客人都要登記證件,如果業者被查獲連續3次沒有落實,將勒令歇業。不過我在酒店上班的日子確診女公關的酒店似乎根本沒在怕,18日警方上門抽查,就發現業者居然為了攬客,通融7名酒客未登記身分,後續酒店兼差不是一個複雜的工作環境?案件也將交給衛生局裁罰。酒店公關小姐排排站,拿身分證配合查驗單位查驗身份,酒店小姐上班通常會取什麼名字?5月底北市酒店解封,但當初開放復工條件可是相當多。酒店小姐去酒店上班都一定要出場接s嗎?:「今天實施臨檢也是要配合店家來做防疫的工作。」這裡是林森北路的酒店一條街,酒店大解封後,民眾現在上門消費都拿出身分證來實名登記。當時CDC曾經公布,北市一家酒店的女公關小姐J小姐(確診)武漢肺炎,因此全台酒店都來關閉,而且網友當時還封這是(國定)上岸日,沒有想到酒店解封之後,就在6月中的時候,警方來做稽查卻發現同一天有7名的酒客沒有落實登記實名制。警方都傻眼,不是1個、2個,一個晚上同一家業者被抓出7人未登記,但業者喊冤說有工作人員,但坦承確實為了業績違反規定。北市衛生局疾管科長余燦華:「依據傳染病防治法,對(初犯)業者裁處3千以上1萬元以下罰鍰,如果3次累加的違規事項,我們會請他們先停止營業。」由於業者申訴案件調查當中,但酒客未落實實名制是事實,後續將被開罰,台灣疫情趨緩,回歸正常生活,但出入複雜又幾乎近距離接觸的酒店,就怕相關單位不嚴查重罰,實名制淪為玩假的。

Elle said...

Thanks for thhis

Hit Counter