string text = "212.77.100.101"; //jeśli chcemy uzyskać nazwę hosta
//string text = "www.wp.pl"; //jeśli chcemy pobrać IP
IPAddress tmp = null;
if (IPAddress.TryParse(text, out tmp))
{
Console.WriteLine(Dns.GetHostEntry(tmp).HostName.ToString()); //pobierz nazwę hosta
}
else
{
Console.WriteLine(Dns.GetHostEntry(text).AddressList[0].ToString()); //pobierz pierwszy adres nazwy hosta
}
Blog studenta dziennego IV roku informatyki na Wydziale Elektrycznym Politechniki Poznańskiej. Zawiera przede wszystkim spostrzeżenia dotyczące ogólnie rozumianego IT.
czwartek, 24 marca 2011
Pobieranie adresu IP i nazwy hosta w sieci
Taki krótki szybki wpis po kilku minutach nudy na zajęciach, czyli rzecz o zamianie IP -> nazwa hosta -> IP
sobota, 19 marca 2011
Zmiana zawartości rekordu podczas UPDATEa w Transact-SQL
Nie tak dawno miałem pewne problemy, jak zmienić zawartość pola rekordu w tabeli, podczas jego aktualizacji. Pola, które nie jest aktualizowane.
Chodziło o to, aby w czasie zmiany pola BITowego z wartości 0 na 1, pole typu DateTime, zmieniało swoją zawartość, na datę wykonania tej zmiany.
Pomoc otrzymałem na stackoverflow.com - swoją drogą dziwne, że nie wpadłem na tak oczywiste rozwiązanie:
Rozwiązanie wykorzystuje tabele Inserted i Deleted występujące w T-Sql.
Chodziło o to, aby w czasie zmiany pola BITowego z wartości 0 na 1, pole typu DateTime, zmieniało swoją zawartość, na datę wykonania tej zmiany.
Pomoc otrzymałem na stackoverflow.com - swoją drogą dziwne, że nie wpadłem na tak oczywiste rozwiązanie:
create trigger tr_U_YourTable
on YourTable
for Update
as
begin
if update(true_false)
update yt
set date = getdate()
from Inserted i
inner join Deleted d
on i.ID = d.ID
inner join YourTable yt
on i.ID = yt.ID
where coalesce(i.true_false,0) <> coalesce(d.true_false,0)
end
Autorem rozwiązania jest Joe Stefanelli.Rozwiązanie wykorzystuje tabele Inserted i Deleted występujące w T-Sql.
piątek, 18 marca 2011
Zmiana UUID dysku VirtualBox
Dzisiaj, w celu przygotowania się do zajęć, musiałem postawić 6 razy maszynę wirtualną. Pierwszą próbą była zmiana już wcześniej posiadanego dysku vboxa na współdzielony (shared):
Niestety, podpięcie później tego dysku do 6 maszyn, i uruchomienie go, poskutkowało zburzeniem konsystencji danych na nim (co za tym idzie, linux wywalał się na starcie).
Potrzebna była więc bardziej toporna metoda - skopiowanie dysku. Aby zaoszczędzić miejsce, użyłem obrazu in.vdi, który miał dynamicznie ustawiany rozmiar pliku-obrazu.
Skopiowałem go 6 razy dla każdej maszyny...
Aby ta dość długa, bo około półgodzinna praca procesora i dysku nie poszła na marne, wykorzystałem więc wbudowaną komendę do nadawania obrazom dysków nowych numerów UUID:
Oczywiście podziałało ;)
//najpierw przerobienie obrazu na "stały" rozmiar VBoxManage clonehd in.vdi out.vdi --variant Fixed //potem ustawienie out.vdi w tryb shareable VBoxManage modifyhd out.vdi --type shareable
Niestety, podpięcie później tego dysku do 6 maszyn, i uruchomienie go, poskutkowało zburzeniem konsystencji danych na nim (co za tym idzie, linux wywalał się na starcie).
Potrzebna była więc bardziej toporna metoda - skopiowanie dysku. Aby zaoszczędzić miejsce, użyłem obrazu in.vdi, który miał dynamicznie ustawiany rozmiar pliku-obrazu.
Skopiowałem go 6 razy dla każdej maszyny...
VBoxManage clonehd in.vdi outn.vdipo czym próbując podpiąć kolejną (pierwszą) kopię, zostałem poinformowany, że dysk o takim UUID już jest podpięty do innej maszyny i nie można go dodać.
Aby ta dość długa, bo około półgodzinna praca procesora i dysku nie poszła na marne, wykorzystałem więc wbudowaną komendę do nadawania obrazom dysków nowych numerów UUID:
VBoxManage internalcommands sethduuid outn.vdi
Oczywiście podziałało ;)
sobota, 5 marca 2011
Zmiana kodowania znaków w C#
Ostatnio pracując nad zleconym projektem musiałem zmieniać kodowanie string'a, i otrzymywać zapis bajtowy string'a, który następnie przekazywałem jako parametr metody.
Do zmiany kodowania użyć można Encoder'a któregoś kodowania z kolekcji System.Text. Przykład takiego użycia:
Polecam zapoznać się z kolekcją klas System.Text.Encoding i metodami dostępnymi dla różnych kodowań
Do zmiany kodowania użyć można Encoder'a któregoś kodowania z kolekcji System.Text. Przykład takiego użycia:
System.Text.ASCIIEncoding encoding = new ASCIIEncoding();Kodowanie takie można następnie wykorzystać do otrzymania tablicy bajtowej, będącej reprezentacją zapisu string'a w danym kodowaniu. Dla przykładu powyżej:
byte[] napis_w_ascii = encoding.GetBytes("napiś");Polecam zapoznać się z kolekcją klas System.Text.Encoding i metodami dostępnymi dla różnych kodowań
środa, 23 lutego 2011
Własna dystrybucja Linuxa
Może ten wpis nie wniesie zbyt wiele na tego bloga, jednak chętnie podzielę się z wami tą informacją.
Dla osób chcących stworzyć własną, spersonalizowaną dystrybucję linuxa, Novell udostępnił narzędzie Suse Studio. Za pomocą tego serwisu można bardzo łatwo wykreować własne distro oparte na jednej z lepszych (sam z niej korzystam) dystrybucji openSuse.
Wystarczy po zalogowaniu skorzystać z "kreatora", który bardzo ładnie prowadzi przez poszczególne kroki, pozostawiając jednak użytkownikowi swobodę w modyfikacji składu dystrybucji.
Jak na początek wystarczy ;)
Dla osób chcących stworzyć własną, spersonalizowaną dystrybucję linuxa, Novell udostępnił narzędzie Suse Studio. Za pomocą tego serwisu można bardzo łatwo wykreować własne distro oparte na jednej z lepszych (sam z niej korzystam) dystrybucji openSuse.
Wystarczy po zalogowaniu skorzystać z "kreatora", który bardzo ładnie prowadzi przez poszczególne kroki, pozostawiając jednak użytkownikowi swobodę w modyfikacji składu dystrybucji.
Jak na początek wystarczy ;)
czwartek, 27 stycznia 2011
Sprawdzanie roli użytkownika w SQL Server + C#
W tworzonym przeze mnie projekcie bazodanowym, z wykorzystaniem MS SQL Server 2005 i C#, potrzebowałem sprawdzania, do jakiej grupy użytkowników należy logujący się do bazy danych użytkownik.
Wykorzystując procedurę (serwerową) SQL Servera sp_helpuser z parametrem (nazwą użytkownika) otrzymałem kilka informacji, w tym tą, która mnie interesuje - grupa do której należy użytkownik.
Nazwa grupy do której należy użytkownik zawiera się w polu [GroupName].
Cała metoda, zapisana w C# wygląda tak:
Wykorzystując procedurę (serwerową) SQL Servera sp_helpuser z parametrem (nazwą użytkownika) otrzymałem kilka informacji, w tym tą, która mnie interesuje - grupa do której należy użytkownik.
Nazwa grupy do której należy użytkownik zawiera się w polu [GroupName].
Cała metoda, zapisana w C# wygląda tak:
private void sprawdz_role()
{
SqlDataReader rdr = null;
SqlParameter username = new SqlParameter("@name_in_db", this.user);
SqlCommand cmd = new SqlCommand("sp_helpuser", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(username);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
this.rola = rdr["GroupName"].ToString();
}
MessageBox.Show("Polaczono jako " + rola);
}
czwartek, 13 stycznia 2011
Zmiana domyślnej przeglądarki w Visual Studio 2010
Niedawno przeszedłem na nową wersję środowiska VS, z 2k8 na 2010.
Programując aplikacje SilverLighta, spotkałem się ze sporym utrudnieniem, ponieważ wcale nie tak łatwo w VS 2010 ustawić domyślną przeglądarkę w jakiej będziemy debugować.
Z pomocą przychodzi społeczność użytkowników, publikując dodatek do VS, "World of VS Default Browser Switcher", dostępny za darmo do pobrania z oficjalnej strony:
http://visualstudiogallery.msdn.microsoft.com/en-us/bb424812-f742-41ef-974a-cdac607df921
Po instalacji, wystarczy tylko z menu View, włączyć Toolbar "Default Browser Switcher".
That's all, folks...
Programując aplikacje SilverLighta, spotkałem się ze sporym utrudnieniem, ponieważ wcale nie tak łatwo w VS 2010 ustawić domyślną przeglądarkę w jakiej będziemy debugować.
Z pomocą przychodzi społeczność użytkowników, publikując dodatek do VS, "World of VS Default Browser Switcher", dostępny za darmo do pobrania z oficjalnej strony:
http://visualstudiogallery.msdn.microsoft.com/en-us/bb424812-f742-41ef-974a-cdac607df921
Po instalacji, wystarczy tylko z menu View, włączyć Toolbar "Default Browser Switcher".
That's all, folks...
Subskrybuj:
Posty (Atom)