Forum: Duyurular RSS
Apache LTSV Format - D Binding
ltsv-d is a LTSV implementation for D
Avatar
Salih Dinçer #1
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Apache LTSV Format - D Binding
https://github.com/repeatedly/ltsv-d

struct ApacheLog
{
    string host, ident, user, time, req, referer, ua;
    size_t size, status;
}
 
/// convert into struct or class directly
auto record = fromLTSV!ApacheLog(apacheLog);
assert(record.host == "127.0.0.1");
assert(record.size == 777);

"Sample":
import ltsv;
 
immutable apacheLog = "host:127.0.0.1\tident:-\tuser:foo\ttime:[10/Oct/2000:13:55:36 -0700]\t"
                      "req:GET /apache.gif HTTP/1.0\tstatus:200\tsize:777\t"
                      "referer:http://www.example.com/start.html\t"
                      "ua:Mozilla/4.08 [en] (Win98; I ;Nav)";
 
auto record = fromLTSV(apacheLog);
assert(record["host"] == "127.0.0.1");
assert(record["size"] == "700");
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
darkofpain #2
Üye Ağu 2013 tarihinden beri · 58 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Merhaba Salih Dinçer,

Apache LTSV tam olarak nedir ? acaba açıklayabilirmisiniz. Dikkatimi çeken gelen parametler HTTP Başlıkları.
erdem (Moderatör) #3
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
LTSV ("Labeled Tab-separated Values") yani işaretlenmiş, boşlukla ayrılan değerler diye çevirebiliriz. Burada boşluk derken TAB tuşu kasdediliyor.

Bunu html gibi bir işaretleme dili gibi düşünebiliriz. Apache gibi sunucu üzerinde çalışan yazılımlarının kayıt kütüklerini tutmak için kullanılıyor.

Örneğin:

host:127.0.0.1<TAB>ident:-<TAB>user:frank<TAB>time:[10/Oct/2000:13:55:36 -0700]<TAB>req:GET /apache_pb.gif HTTP/1.0<TAB>status:200<TAB>size:2326<TAB>referer:http://www.example.com/start.html<TAB>ua:Mozilla/4.08 [en] (Win98; I ;Nav)

Anladığım kadarıyla bu kütüphane de bu çeteleleri okumak için kolaylık sağlıyor.
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Şöyle de düşünebiliriz...

Hani 'web script'lerde ortam değişkenleri (environment variables) vardır ve bunları basit bir şekilde (örneğin PHP'de $_ENV çağrışımsal dizisi ile) okur. Burada ise kendi oluşturduğunuz yapıya uyarlayabileceğiniz (integration) bir şablonlar beraber yine tıpkı PHP'de olduğu gibi, tüm ortam değişkenlerine çağrışımsal dizi (associative array) vasıtasıyla erişebilmemizi sağlıyor.

Belki vibe.d gibi bir çatı kullandığınızda böyle bir şeye ihtiyacınız yoktur ama "socket programming" yaparken bazı kolaylıkları da bu şekilde kullanmak isteyebilirsiniz.
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Duyurular RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 03:10:03 (UTC -08:00)