Заменить подстроку в URL?
От: Win32nipuh  
Дата: 21.05.15 11:56
Оценка:
Есть URL, нужно определить, используется ли в качестве имени хоста localhost илил loop адрес типа 127.*.*.* и заменить его на реальное имя хоста данного компьютера.
URL типа

http://host[:port]/xbostik/xbostik2...
https://host[:port]/xbostik/xbostik2...

и т.д.

Как красиво сделать?
Re: Заменить подстроку в URL?
От: Muxa  
Дата: 21.05.15 12:16
Оценка:
W>Как красиво сделать?
// псевдокод

Uri uri = new Uri("http://host[:port]/xbostik/xbostik2...");
if (uri.Host == "localhost")
    uri.Host = mySuperCDEjectorHostName;

return uri.ToString();
Отредактировано 21.05.2015 12:17 Muxa . Предыдущая версия .
Re[2]: Заменить подстроку в URL?
От: Win32nipuh  
Дата: 21.05.15 12:30
Оценка:
Здравствуйте, Muxa, Вы писали:

W>>Как красиво сделать?

M>
M>// псевдокод

M>Uri uri = new Uri("http://host[:port]/xbostik/xbostik2...");
M>if (uri.Host == "localhost")
M>    uri.Host = mySuperCDEjectorHostName;

M>return uri.ToString();
M>


+ или loop адрес типа 127.*.*.*
Re[3]: Заменить подстроку в URL?
От: Muxa  
Дата: 21.05.15 12:41
Оценка:
W>+ или loop адрес типа 127.*.*.*
да
Re: Заменить подстроку в URL?
От: btn1  
Дата: 21.05.15 14:43
Оценка: -5 :))) :))
Здравствуйте, Win32nipuh, Вы писали:

W>Есть URL, нужно определить, используется ли в качестве имени хоста localhost илил loop адрес типа 127.*.*.* и заменить его на реальное имя хоста данного компьютера.


С каких это пор такая тривиальщина стала предметом взывания к форумам?? Экзамены на носу, лабораторки подтягиваем?

W>http://host[:port]/xbostik/xbostik2...

W>Как красиво сделать?

Выучить предмет и сделать. Регэкспы вам в помощь (т.к. после '//' гарантированно идёт хост).
Re[2]: Заменить подстроку в URL?
От: fddima  
Дата: 21.05.15 20:03
Оценка:
Здравствуйте, btn1, Вы писали:

B>Выучить предмет и сделать. Регэкспы вам в помощь (т.к. после '//' гарантированно идёт хост).

Вообще-то нет. Вот вам пример абсолютно корректного Uri: "about:blank".
Re: Заменить подстроку в URL?
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 22.05.15 07:02
Оценка: +2
Здравствуйте, Win32nipuh, Вы писали:

W>Как красиво сделать?


Для манипуляций над частями Uri предназначен класс UriBuilder
Слегка упрощенный (без проверок, просто всегда меняем имя хоста на полное имя текущего компьютера) пример того, что вы хотите, выглядит так:
public static string LocalHostFullHostName()
{
    return Dns.GetHostEntry(Dns.GetHostName()).HostName;
}

public static Uri ToLocalUri(Uri address)
{
   var uriBuilder = new UriBuilder(address);
   var host = LocalHostFullHostName();
   uriBuilder.Host = host;
   return uriBuilder.Uri;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.