Pitanje:
Zna li netko postoji li neka gotova WOL kombinacija koja ima web frontend kroz koji bi se mogao definirati popis NIC-ova i odabrati onog kojeg se želi WOL-nuti? Ova kombinacija bi radila u LAN-u.
Pitanje:
Zna li netko postoji li neka gotova WOL kombinacija koja ima web frontend kroz koji bi se mogao definirati popis NIC-ova i odabrati onog kojeg se želi WOL-nuti? Ova kombinacija bi radila u LAN-u.
jedino kaj mi pada na pamet je da sam digneš neki webserver na kojemu to izdefiniraš
Q-zake baš mora bit webserver?
jedino kaj mi pada na pamet je da sam digneš neki webserver na kojemu to izdefiniraš
Q-zake baš mora bit webserver?
Zato što je broadcast blockan ulazima/izlazima u DMZ, pa se kao logično rješenje nameće da se dođe do nekog malog web servera u DMZ-u koji će onda interno napraviti broadcast preko nekog WOL softvera.
Zato što je broadcast blockan ulazima/izlazima u DMZ, pa se kao logično rješenje nameće da se dođe do nekog malog web servera u DMZ-u koji će onda interno napraviti broadcast preko nekog WOL softvera.
Kod mene, server se automatski pali kad ima struje, na njem je app kojim budim one koji mi trebaju.
Na server se povezivam remote desktopom.
Zato što je broadcast blockan ulazima/izlazima u DMZ, pa se kao logično rješenje nameće da se dođe do nekog malog web servera u DMZ-u koji će onda interno napraviti broadcast preko nekog WOL softvera.
Kod mene, server se automatski pali kad ima struje, na njem je app kojim budim one koji mi trebaju.
Na server se povezivam remote desktopom.
Ma sve 5, ali ne treba mi to u ovoj situaciji. Stvar je sljedeća: imam par mašina koje moraju biti ugašene dok im se ručno ne kaže da se popale. Mogao bi to rješiti tako da se Remote Desktopom spojim na neku upaljenu i pokrenem neki klasični WOL program, ali to je daleko od elegantnog rješenja koje želim složiti = želim da to bude kroz 2 klika i 2 sec, a ne 8-9 klikova i 5 min čekanja da RDP zavergla. :]
<%@ Import Namespace = "System.Net" %>
<%@ Import Namespace = "System.Net.Sockets" %>
<%@ Import Namespace = "System.Net.Dns"%>
<%@ Import Namespace = "System.Text"%>
<script language="vb" runat="server">
Private Function InvertBinary(ByVal x As String) As String
Dim ch As Char
Dim len As Integer = CStr(x).Length
For Each ch In CStr(x)
If ch = "1" Then
InvertBinary += "0"
Else
InvertBinary += "1"
End If
Next
End Function
Private Function OrIt(ByVal x As Long, ByVal y As Long) As String
'Pad out
Dim xx As String
xx = CStr(x)
While xx.Length < 8
xx = "0" + xx
End While
Dim yy As String
yy = CStr(y)
While yy.Length < 8
yy = "0" + yy
End While
For c As Integer = 0 To 7
If xx.Chars(c) = "1" Or yy.Chars(c) = "1" Then
OrIt += "1"
Else
OrIt += "0"
End If
Next
End Function
Private Function ToBinary(ByVal x As Long) As String
Dim temp As String = ""
Do
If x Mod 2 Then
temp = "1" + temp
Else
temp = "0" + temp
End If
x = x \ 2
If x < 1 Then Exit Do
Loop
While temp.Length < 8
temp = "0" + temp
End While
Return temp
End Function
Private Function ToInteger(ByVal x As Long) As String
Dim temp As String
Dim ch As Char
Dim multiply As Integer = 1
Dim subtract As Integer = 1
Dim len As Integer = CStr(x).Length
For Each ch In CStr(x)
For len = 1 To CStr(x).Length - subtract
multiply = multiply * 2
Next
multiply = CInt(ch.ToString) * multiply
temp = multiply + temp
subtract = subtract + 1
multiply = 1
Next
Return temp
End Function
Private Sub btnWakeUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim udpClient As New UdpClient
Dim buf(101) As Char
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(buf)
For x As Integer = 0 To 5
sendBytes(x) = CInt("&HFF")
Next
Dim MacAddress As String
MacAddress = Replace(edtMac.Text, "-", "")
Dim i As Integer = 6
For x As Integer = 1 To 16
sendBytes(i) = CInt("&H" + MacAddress.Substring(0, 2))
sendBytes(i + 1) = CInt("&H" + MacAddress.Substring(2, 2))
sendBytes(i + 2) = CInt("&H" + MacAddress.Substring(4, 2))
sendBytes(i + 3) = CInt("&H" + MacAddress.Substring(6, 2))
sendBytes(i + 4) = CInt("&H" + MacAddress.Substring(8, 2))
sendBytes(i + 5) = CInt("&H" + MacAddress.Substring(10, 2))
i += 6
Next
Dim myAddress As String
'' Split user IP address
Dim myIpArray() As String
Dim a, b, c, d As Int64
myIpArray = edtIpAddress.Text.Split(".")
For i = 0 To myIpArray.GetUpperBound(0)
Select Case i
Case Is = 0
a = Convert.ToInt64(myIpArray(i))
Case Is = 1
b = Convert.ToInt64(myIpArray(i))
Case Is = 2
c = Convert.ToInt64(myIpArray(i))
Case Is = 3
d = Convert.ToInt64(myIpArray(i))
End Select
Next
Dim mySubnetArray() As String
Dim sm1, sm2, sm3, sm4 As Int64
mySubnetArray = edtSubnetMask.Text.Split(".")
For i = 0 To mySubnetArray.GetUpperBound(0)
Select Case i
Case Is = 0
sm1 = Convert.ToInt64(mySubnetArray(i))
Case Is = 1
sm2 = Convert.ToInt64(mySubnetArray(i))
Case Is = 2
sm3 = Convert.ToInt64(mySubnetArray(i))
Case Is = 3
sm4 = Convert.ToInt64(mySubnetArray(i))
End Select
Next
myAddress = ToInteger(OrIt(ToBinary(a), InvertBinary(ToBinary(sm1)))) & "." & ToInteger(OrIt(ToBinary(b), InvertBinary(ToBinary(sm2)))) & _
"." & ToInteger(OrIt(ToBinary(c), InvertBinary(ToBinary(sm3)))) & "." & ToInteger(OrIt(ToBinary(d), InvertBinary(ToBinary(sm4))))
udpClient.Send(sendBytes, sendBytes.Length, myAddress, CInt(edtPortNo.Text))
lblSent.Text = " Magic Packet sent to " & myAddress
End Sub
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>www.depicus.com</title>
</head>
<body>
<form id=myForm method=post runat="server">
<asp:textbox id=edtMac runat="server" CssClass="myInput">00-90-27-A3-22-FE</asp:TextBox><br>
<asp:textbox id=edtIpAddress runat="server" MaxLength="15" CssClass="myInput">217.204.255.55</asp:TextBox><br>
<asp:textbox id=edtSubnetMask runat="server" MaxLength="15" CssClass="myInput">255.255.255.240</asp:TextBox><br>
<asp:textbox id=edtPortNo runat="server" MaxLength="5" CssClass="myInput">7</asp:TextBox><br>
<asp:button id=btnWakeUp runat="server" onclick="btnWakeUp_Click" Text="Wake On Wan" CssClass="bluebutton"></asp:Button>
<asp:Label id=lblSent runat="server" CssClass="errortext"><p> </p></asp:Label>
</form>
</body>
</html>
- nije moja skripta
- ne dajem suport
- nisam programer
preuzeto sa: http://www.depicus.com/wake-on-lan/woli.aspx
potraži WOL Magic Packets... (klik magic). Dobro ga je imati na dva računala (unutar mreže).
edit: naravno, BIOS je podešen?
potraži WOL Magic Packets... (klik magic). Dobro ga je imati na dva računala (unutar mreže).
edit: naravno, BIOS je podešen?
Mislim da me nisi skužio - meni je trebalo nešto što je u stanju dići komp preko WOL MP-a, ali da je frontend kroz neku formu web stranice.
U svakom slučaju - riješio sam problem (uz malo modifikacija ove skripte). DLL koji morate registrirati je u istom ZIP-u.
A evo modificirani kod:
<HTML><HEAD>
<TITLE>Depicus Wake On Lan</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<div align="left">
<table border="0" width="98%" height="100%" align="left" cellspacing="0" cellpadding="0">
<tr>
<td width="69%" height="26" valign="top">
<p align="left"><font face="Tahoma" size="2">Wake
on Lan Magic Packets can be sent over the Internet - why not try waking up
one of your machines with our free Wake On Wan Service.</font></p>
<form method="POST" action="woli.asp">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="102">
<tr>
<td width="33%" height="25" align="right"><font size="2" face="Tahoma">Your
Network Cards Mac Address</font></td>
<td width="5%" height="25"></td>
<td width="62%" height="25"><input type="text" name="MacAddress" size="20"></td>
</tr>
<tr>
<td width="33%" height="25" align="right"><font size="2" face="Tahoma">Your
Computers Ip Number</font></td>
<td width="5%" height="25"></td>
<td width="62%" height="25"><input type="text" name="IpNumber" size="20" value="255.255.255.255"></td>
</tr>
<tr>
<td width="33%" height="25" align="right"><font size="2" face="Tahoma">Your
Subnet Mask</font></td>
<td width="5%" height="25"></td>
<td width="62%" height="25"><input type="text" name="SubnetMask" size="20" value="0.0.0.0"></td>
</tr>
<tr>
<td width="33%" height="27">
<p align="center"></td>
<td width="5%" height="27">
</td>
<td width="62%" height="27">
<input type="submit" value="Wake On Wan" name="WakeMeUp"></td>
</tr>
</table>
<p align="left"><font size="2" face="Tahoma"></p>
</form>
<p align="left">
<%
if Request.Form("MacAddress") <> "" then
set WakeOnLan = server.createobject("DigitalWol.Wol")
WakeOnLan.TheMacAddress(Request.Form("MacAddress"))
WakeOnLan.TheIpNumber(Request.Form("IpNumber"))
WakeOnLan.TheSubnetMask(Request.Form("SubnetMask"))
WakeOnLan.WakeMeUp
end if
%>
</p>
<p align="left"> </p>
<p align="left"> </td>
</tr>
</table>
</div>
</BODY></HTML>
I to je u biti to - stvar radi. Sad si samo moram složiti listu željenih MAC-ova u neki ComboBox i gotov sam.
Ja sam to riješio preko LogMeIn-a na taj način da sam ostavio u routeru DHCP Lease time na never expire i tako mogu upaliti bilo koji komp iako su svi ugašeni.
Naravno uvijeti moraju biti podešeni na računalima da se mogu paliti WOL.
@ html -kod.
-hmm, ... dooobrooo (onako otegnuto, skriveno neznanje..) -izvući ću se na umor
a što si dobio ovim frontendom u odnosu na magic? (nije mi uočljiva razlika, prednost...) - može hint? Jer bi moglo biti korisno.
Uvjek su IP+MAC za magic pinganje, dal je iz CMDa ili bilo koji drugi način... zato pitam, možda je neki firewall ili sl. razlog? Možda samo potreba paljenja u for-next 'hrpe strojeva'?
@ html -kod.
-hmm, ... dooobrooo (onako otegnuto, skriveno neznanje..) -izvući ću se na umor
a što si dobio ovim frontendom u odnosu na magic? (nije mi uočljiva razlika, prednost...) - može hint? Jer bi moglo biti korisno.
Uvjek su IP+MAC za magic pinganje, dal je iz CMDa ili bilo koji drugi način... zato pitam, možda je neki firewall ili sl. razlog? Možda samo potreba paljenja u for-next 'hrpe strojeva'?
Kao prvo, nije riječ o čistom HTML-u - promakao ti je jedan ključan dio gdje se vrti ASP koji poziva vanjski DLL koji radi WOL-a željene MAC adrese. Treba ti IIS, a vjerojatno bi prošao i Apache::ASP (ali to nisam probao).
E sad... Čemu ovo? Zamisli sljedeću situaciju (moja je ipak dosta kompliciranija, ali pojednostavljujem radi primjera):
Računalo doma / laptop / mobitel --- Router --- Firewall --- DMZ --- Firewall --- Router --- ....
Pretpostavimo da u DMZ-u imaš X računala koja bi trebala raditi nešto tu i tamo, ali su u principu manje-više uglavnom ugašena. Problem je kako popaliti A, B, C, ..., ili Z skupinu računala (A, B, C, ..., Z <= X) kad se za to ukaže potreba pri čemu skupina računala A != B != C != ... !=Z (ovime želim reći da to u pravilu nikad nisu ista računala koja se pale).
E sad... Postoji nekoliko mogućnosti kako pristupiti rješenju ovog problema:
SOLUCIJA A
Instalirati neki WOL program na neko računalo u DMZ-u koje je uvijek upaljeno i onda ga pokretati preko RDP-a ili SSH-a i paliti željena računala u DMZ-u
Mane: U principu mi se ne sviđa nimalo otvarati RDP ili SSH portove prema Internetu - tako da ti portovi nisu otvoreni i to otpada. OK, ovo bi se dalo zaobići kombinacijom VPN+RDP/SSH, ali ne da mi se za svako paljenje sekundarnih računala u DMZ-u vaditi hardverski PKI token za pristup VPN-u. Plus, hardverski PKI key za VPN ne mogu ugurati u npr. smartphone.
Prednosti: Posve nevažno jer mane nadjačavaju sve prednosti. ;]
SOLUCIJA B
Napraviti port fwd na routeru koji će prosljeđivati WOL promet prema računalima.
Mane: svako računalo bi zahtjevalo svoj vlastiti port fwd rule = prilično nepraktično za administriranje i monitoriranje.
Prednosti: Posve nevažno jer mane nadjačavaju sve prednosti. ;]
SOLUCIJA C
Napraviti samo jedan port fwd na routeru koji će prekko WOL prometa paliti jedno određeno računalo, a onda će ono preko neke startup skripte paliti ostala.
Mane: Ne pale se uvijek ista računala.
Prednosti: Posve nevažno jer mane nadjačavaju sve prednosti. ;]
.... (ima još mogućnosti, ali ne da mi se sada sve popisivati - ugl, niti jedna mi nije odgovarala za moju specifičnu situaciju) ...
SOLUCIJA X (aka moja ideja koju sam na kraju i uspješno realizirao)
Dići mali web server u DMZ-u koji će predstavljati WOL server, dići sajt na njemu na nekom divljem portu i zaštititi sve HTTPS-om i dopustiti pristup samo klijentima s odgovarajućim certifikatom. Na routeru otvoriti port fwd za HTTPS promet samo prema tom web serveru na nekom drugom divljem portu. Ima još nekih razina zaštite tu, ali o tome baš i ne bi na forumu otvorenog tipa... U svakom slučaju - WOL server je zaštićen izvana i samo odabrani ljudi (admini) imaju pristup.
Mane: uz dobro izvedenu zaštitu web servera ne mogu se sjetiti neke.
Prednosti: Samo jedan port fwd na routeru. Mogućnost paljenja računala u DMZ-u s bilo kojeg uređaja koji ima pristup Internetu i podržava određene razine zaštite (prvenstveno certifikati). Npr. sad mogu (ako se ukaže potreba) upaliti traženo računalo sa svojeg HTC-a dok ispijam podnevnu kavu u lokalnom kafiću. ;]
Mane: uz dobro izvedenu zaštitu web servera ne mogu se sjetiti neke.
Prednosti: Samo jedan port fwd na routeru. Mogućnost paljenja računala u DMZ-u s bilo kojeg uređaja koji ima pristup Internetu i podržava određene razine zaštite (prvenstveno certifikati). Npr. sad mogu (ako se ukaže potreba) upaliti traženo računalo sa svojeg HTC-a dok ispijam podnevnu kavu u lokalnom kafiću. ;]
-predpostavio sam tako nešto. Jip, to je dobar razlog i dobro rješenje.
(meni je ipak draži SSH+CA i tipkanje na notebooku... uz to da neželim ni otvarati IIS prema van, možda se zbog ovog predomislim...)
SOLUCIJA X (aka moja ideja koju sam na kraju i uspješno realizirao)
Dići mali web server u DMZ-u koji će predstavljati WOL server, dići sajt na njemu na nekom divljem portu i zaštititi sve HTTPS-om i dopustiti pristup samo klijentima s odgovarajućim certifikatom. Na routeru otvoriti port fwd za HTTPS promet samo prema tom web serveru na nekom drugom divljem portu. Ima još nekih razina zaštite tu, ali o tome baš i ne bi na forumu otvorenog tipa... U svakom slučaju - WOL server je zaštićen izvana i samo odabrani ljudi (admini) imaju pristup.
Mane: uz dobro izvedenu zaštitu web servera ne mogu se sjetiti neke.
Prednosti: Samo jedan port fwd na routeru. Mogućnost paljenja računala u DMZ-u s bilo kojeg uređaja koji ima pristup Internetu i podržava određene razine zaštite (prvenstveno certifikati). Npr. sad mogu (ako se ukaže potreba) upaliti traženo računalo sa svojeg HTC-a dok ispijam podnevnu kavu u lokalnom kafiću. ;]
Zapravo je ovo jedina logicna i najjednostavnija solucija.
Mi u firmi imamo ruter na kojeg se kacimo VPN-om i sa njega saljemo magic pakete dalje. Ali ti si reko da zelis posto poto izbjec vpn.
SOLUCIJA X (aka moja ideja koju sam na kraju i uspješno realizirao)
Dići mali web server u DMZ-u koji će predstavljati WOL server, dići sajt na njemu na nekom divljem portu i zaštititi sve HTTPS-om i dopustiti pristup samo klijentima s odgovarajućim certifikatom. Na routeru otvoriti port fwd za HTTPS promet samo prema tom web serveru na nekom drugom divljem portu. Ima još nekih razina zaštite tu, ali o tome baš i ne bi na forumu otvorenog tipa... U svakom slučaju - WOL server je zaštićen izvana i samo odabrani ljudi (admini) imaju pristup.
Mane: uz dobro izvedenu zaštitu web servera ne mogu se sjetiti neke.
Prednosti: Samo jedan port fwd na routeru. Mogućnost paljenja računala u DMZ-u s bilo kojeg uređaja koji ima pristup Internetu i podržava određene razine zaštite (prvenstveno certifikati). Npr. sad mogu (ako se ukaže potreba) upaliti traženo računalo sa svojeg HTC-a dok ispijam podnevnu kavu u lokalnom kafiću. ;]
Zapravo je ovo jedina logicna i najjednostavnija solucija.
Mi u firmi imamo ruter na kojeg se kacimo VPN-om i sa njega saljemo magic pakete dalje. Ali ti si reko da zelis posto poto izbjec vpn.
Samo iz razloga što je kod nas VPN s klijentske strane izveden preko hardverskih tokena. Super stvar što se sigurnosti tiče, ali mi zbog mobilnosti nije baš uvijek praktično - u smislu da na kavu poslije ručka ne nosim laptop, a prokleti Murphy se obično baš tad sjeti da bi nešto trebalo podići.
Što se ovog rješenja tiče, stvar sam dobro istestirao i radi k'o švicarski sat i mogu reći da sam se ugodno iznenadio koliko je zapravo bezbolna bila sama realizacija.
@ihush
Što se tiče IIS-a - ne mora to biti "glavni" IIS (nije ni kod mene). Bilo koja WindowsXP+ mašina u DMZ-u može vrtiti IIS, pa time i ovaj WOL "server".
-da, ... razumijem tvoje potrebe (kava ) no moj način rada je kroz VPN...
-drugačije potrebe-drugačija rješenja. Samo paljenje mi je relativno sporedno.. toliko da se nesjećam kad sam ga koristio za posao, osim za kućni PC.